传送门
#include<bits/stdc++.h>
#define int long long
using namespace std;
char c[10000][10000];
int vis[5000][5000];
int n,xx,yy,x2,y2;
void dfs(int x,int y,int dis){
cout<<vis[x][y]<<x<<y<<c[x][y];
if(x>n||x<1||y>n||y<1||(vis[x][y]!=-1&&dis>=vis[x][y])||c[x][y]=='1');
return;
vis[x][y]=dis;
dfs(x+1,y,dis+1);
dfs(x,y+1,dis+1);
dfs(x,y-1,dis+1);
dfs(x-1,y,dis+1);
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
cin>>c[i][j];
vis[i][j]=-1;
}
cin>>xx>>yy>>x2>>y2;
dfs(xx,yy,0);
cout<<vis[x2][y2];
return 0;}