#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef vector<PII> vp;
const int N = 55;
int n,g[N][N],s,st[N][N];
int sx,sy,fx,fy,res = 2e9;
int dx[] = {1,0,-1,0},dy[] = {0,-1,0,1};
vp v[2];
void dfs(int x,int y,vp &v){
st[x][y] = 1;
v.push_back({x,y});
for(int i = 0;i < 4;i++){
int a = x + dx[i],b = y + dy[i];
if(a < 1 || a > n || b < 1 || b > n) continue;
if(g[a][b] != 0 || st[a][b]) continue;
dfs(a,b,v);
}
}
int main(){
cin >> n;
cin >> sx >> sy >> fx >> fy;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++){
scanf("%01d",&g[i][j]);
}
}
dfs(sx,sy,v[0]);
if(st[fx][fy] == 1){
cout << 0;
return 0;
}
dfs(fx,fy,v[1]);
for(auto u:v[0]){
for(auto p:v[1]){
int x1 = u.first,y1 = u.second,x2 = p.first,y2 = p.second;
int r = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
res = min(r,res);
}
}
cout << res;
return 0;
}