#include<cstdio>
#include<algorithm>
using namespace std;
long long v[10],m[515][515],perm[10],s[515][515],l1=2000000000,c1=2000000000,l2=2000000000,c2=2000000000,num[10],n;
int eval(){
long long i,st,dr,mij,last,_l1,_c1,_l2,_c2,su=0;
for(i=1;i<=9;i++)
num[i]=v[perm[i]];
st=1;
dr=n;
last=-1;
su=num[1]+num[4]+num[7];
while(st<=dr){
mij=(st+dr)/2;
if (s[n][mij]==su){
last=mij;
break;}
if (s[n][mij]<su)
st=mij+1;
else
dr=mij-1;}
_c1=last;
if (!(1<=_c1))
return 0;
st=1;
dr=n;
last=-1;
su=num[1]+num[4]+num[7]+num[2]+num[5]+num[8];
while(st<=dr){
mij=(st+dr)/2;
if (s[n][mij]==su){
last=mij;
break;}
if (s[n][mij]<su)
st=mij+1;
else
dr=mij-1;}
_c2=last;
if (!(_c1<_c2 && _c2<n))
return 0;
st=1;
dr=n;
last=-1;
su=num[1]+num[2]+num[3];
while(st<=dr){
mij=(st+dr)/2;
if (s[mij][n]==su){
last=mij;
break;}
if (s[mij][n]<su)
st=mij+1;
else
dr=mij-1;}
_l1=last;
if (!(1<=_l1))
return 0;
st=1;
dr=n;
last=-1;
su=num[1]+num[2]+num[3]+num[4]+num[5]+num[6];
while(st<=dr){
mij=(st+dr)/2;
if (s[mij][n]==su){
last=mij;
break;}
if (s[mij][n]<su)
st=mij+1;
else
dr=mij-1;}
_l2=last;
if (!(_l1<_l2 && _l2<n))
return 0;
if (_l1<l1)
l1=_l1,l2=_l2,c1=_c1,c2=_c2;
else
if (_l1==l1)
if (_c1<c1)
l1=_l1,l2=_l2,c1=_c1,c2=_c2;
else
if (_c1==c1)
if (_l2<l2)
l1=_l1,l2=_l2,c1=_c1,c2=_c2;
else
if (_l2==l2)
if (_l1+_l2+_c1+_c2<l1+l2+c1+c2)
l1=_l1,l2=_l2,c1=_c1,c2=_c2;}
int main(){
freopen("zone.in","r",stdin);
freopen("zone.out","w",stdout);
long long i,j;
scanf("%lld",&n);
for(i=1;i<=9;i++)
scanf("%lld",&v[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%lld",&m[i][j]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
s[i][j]=m[i][j]+s[i][j-1]+s[i-1][j]-s[i-1][j-1];
for(i=1;i<=9;i++)
perm[i]=i;
do{
eval();
}while(next_permutation(perm+1,perm+10));
printf("%lld %lld %lld %lld\n",l1,l2,c1,c2);
return 0;}