#include<bits/stdc++.h>
using namespace std;
int n,xx,yy,x2,y2;
char a[1009][1009];
bool xy(int sum){
if(sum>0&&sum<=n)return 1;
return 0;
}void bfs(){
queue<int>x;
queue<int>y;
queue<int>ans;
x.push(xx);
y.push(yy);
ans.push(0);
while(!x.empty()){
if(x.front()==x2&&y.front()==y2){
cout<<ans.front();
return;
}
if(xy(x.front()+1)&&a[x.front()+1][y.front()]=='0'){
x.push(x.front()+1);
y.push(y.front());
ans.push(ans.front()+1);
}if(xy(x.front()-1)&&a[x.front()-1][y.front()]=='0'){
x.push(x.front()-1);
y.push(y.front());
ans.push(ans.front()+1);
}if(xy(y.front()+1)&&a[x.front()][y.front()+1]=='0'){
x.push(x.front());
y.push(y.front()+1);
ans.push(ans.front()+1);
}if(xy(y.front()-1)&&a[x.front()][y.front()-1]=='0'){
x.push(x.front());
y.push(y.front()-1);
ans.push(ans.front()+1);
}x.pop();
y.pop();
ans.pop();
}return ;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}cin>>xx>>yy>>x2>>y2;
bfs();
return 0;
}