#include <bits/stdc++.h>
using namespace std;
int n=0,a[1001][1001],vis[1001][1001];
int xx1,yy1,xx2,yy2,sum[10000000];
void dfs(int x,int y,int ex,int ey,int s){
vis[x][y]=1;
if(x!=0&&vis[x-1][y]==0){
dfs(x-1,y,ex,ey,s+1);
}
if(y!=0&&vis[x][y-1]==0){
dfs(x,y-1,ex,ey,s+1);
}
if(x!=n-1&&vis[x+1][y]==0){
dfs(x+1,y,ex,ey,s+1);
}
if(y!=n-1&&vis[x][y+1]==0){
dfs(x,y+1,ex,ey,s+1);
}
if(x==ex&&y==ey){
sum[vis[1001][1001]]==s;
vis[1001][1001]++;
return;
}
}
int main(){
scanf("%d",&n);
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
char c;
scanf("%c",&c);
a[i][j]=c-'0';
if(a[i][j]==1){
vis[i][j]=1;
}
}
}
scanf("%d %d %d %d",&xx1,&xx2,&yy1,&yy2);
int ans;
for(int i=0;i<10000000;i++){
ans=max(ans,sum[i]);
}
printf("%d",ans);
return 0;
}