#include<string>
#include<iostream>
#include<cstdio>
#include<bitset>
typedef unsigned long ty;
std::string loc[1010]={std::string(1010,'0')};
ty stc[1000010][3]={};
std::bitset<1010> bts[1010]={};
int main()
{
ty n;
std::cin>>n;
for(ty i(1);i<=n;++i)
{
loc[i]=std::string(n+1,'0');
for(ty j(1);j<=n;++j)
std::cin>>loc[i][j];
}
ty sf,ss,tf,ts;
std::cin>>sf>>ss>>tf>>ts;
ty j;
for(;;++j)
for(ty i(1);i;++stc[i][0])
{
if(stc[i][1]==0||stc[i][1]>n||stc[i][2]==0||stc[i][2]>n||bts[stc[i][1]][stc[i][2]]||loc[stc[i][1]][stc[i][2]]=='1')
{
--i;
continue;
}
if(stc[i][1]==tf&&stc[i][2]==ts)
goto ed;
bts[stc[i][1]][stc[i][2]]=true;
if(stc[i][0]==1)
{
stc[i+1][1]=stc[i][1]-1;
stc[i+1][2]=stc[i][2];
}
else if(stc[i][0]==2)
{
stc[i+1][1]=stc[i][1]+1;
stc[i+1][2]=stc[i][2];
}
else if(stc[i][0]==3)
{
stc[i+1][1]=stc[i][1];
stc[i+1][2]=stc[i][2]-1;
}
else if(stc[i][0]==4)
{
stc[i+1][1]=stc[i][1];
stc[i+1][2]=stc[i][2]+1;
}
else
--i;
}
ed:
fprintf(stdout,"%u\n",j);
return 0;
}