#include<bits/stdc++.h>
using namespace std;
int n;
struct pos{
int x,y;
}a,b;
queue<pos> q;
int mp[1005][1005],x2,y2,x3,y3;
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
bool vis[1005][1005];
int tot[1005][1005];
int main(){
cin>>n;
string s;
for(int i=1;i<=n;i++){
cin>>s;
for(int j=0;j<3;j++){
mp[i][j]=s[j]-'0';
}
}
cin>>x2>>y2>>x3>>y3;
a.x=x2,a.y=y2;
q.push(a);
vis[x2][y2]=1;
while(!q.empty()){
a=q.front();
q.pop();
cout<<a.x<<" "<<a.y<<endl;
if(a.x==x3&&a.y==y3){
cout<<tot[a.x][a.y];
return 0;
}
for(int i=0;i<4;i++){
int px=dx[i]+a.x;
int py=dy[i]+a.y;
if(px>=1&&py>=1&&py<=n&&px<=n&&vis[px][py]==0&&mp[px][py]!=1){
tot[px][py]=tot[a.x][a.y]+1;
vis[px][py]=1;
b.x=px,b.y=py;
q.push(b);
}
}
}
return 0;
}