#include <bits/stdc++.h>
#define pii pair<int, int>
#define pb push_back
#define mp make_pair
#define NMAX 7003
using namespace std;
ifstream f("zone.in");
ofstream g("zone.out");
int N, M, K, a[515][515], y;
long long b[515][515], x;
vector<long long> myMap;
long long sum (int i, int j, int ii, int jj) {
return b[ii][jj] + b[i - 1][j - 1] - b[ii][j - 1] - b[i - 1][jj];
}
bool check (int i, int j, int ii, int jj) {
vector <long long> v;
v.pb(sum(1, 1, i, j));
v.pb(sum(1, j + 1, i, jj));
v.pb(sum(1, jj + 1, i, N));
v.pb(sum(i + 1, 1, ii, j));
v.pb(sum(i + 1, j + 1, ii, jj));
v.pb(sum(i + 1, jj + 1, ii, N));
v.pb(sum(ii + 1, 1, N, j));
v.pb(sum(ii + 1, j + 1, N, jj));
v.pb(sum(ii + 1, jj + 1, N, N));
sort(v.begin(), v.end());
return v == myMap;
}
int main() {
f >> N;
for (int i = 0; i < 9; ++i) {
f >> x;
myMap.pb(x);
}
sort(myMap.begin(), myMap.end());
for (int i = 1; i <= N; ++i)
for (int j = 1; j <= N; ++j) {
f >> a[i][j];
b[i][j] = a[i][j] + b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];
}
for (int i = 1; i < N - 1; ++i)
for (int j = 1; j < N - 1; ++j) {
if (binary_search(myMap.begin(), myMap.end(), b[i][j])) {
//INTRU AICI DE MAX 9 ori
for (int ii = i + 1; ii < N; ++ii) {
if (!binary_search(myMap.begin(), myMap.end(), sum(i + 1, 1, ii, j))) continue;
for (int jj = j + 1; jj < N; ++jj) {
if (check(i, j, ii, jj)) {
g << i << ' ' << ii << ' ' << j << ' ' << jj;
return 0;
}
}
}
}
}
return 0;
}