rt QAQ
#include<iostream>
#define int long long
using namespace std;
const int N=1005;
int a[N][N];
int n,x1,x2,y1,y2,ans;
char qwq;
int py[4][2]={1,0,0,1,-1,0,0,-1};
void bfs(int x,int y,int cnt){
if(x==x2&&y==y2){
ans=max(ans,cnt);
return ;
}
for(int i=0;i<4;i++){
int kx=x+py[i][0];
int ky=y+py[i][1];
if(kx<1||ky<1||kx>n||ky>n||a[kx][ky])continue;
a[kx][ky]='1';
bfs(kx,ky,cnt+1);
}
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>qwq,a[i][j]=qwq-'0';
cin>>x1>>y1>>x2>>y2;
a[x1][y1]=1;
bfs(x1,y1,0);
cout<<ans;
return 0;
}