#include<bits/stdc++.h>
using namespace std;
char a[101][101];
int x1,y1,x2,y2;
int n,f=0,b[1001][2],dir[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
void print(int step)
{
f=1;
for(int i=1;i<=step;i++)
{
if(i==1)cout<<"("<<b[i][0]<<","<<b[i][1]<<")";
else cout<<"-"<<"("<<b[i][0]<<","<<b[i][1]<<")";
}
}
void dfs(int step,int x,int y)
{
b[step][0]=x;
b[step][1]=y;
if(x==x2&&y==y2)
{
print(step);
exit(0);
}
for(int i=0;i<4;i++)
{
int nx=x+dir[i][0],ny=y+dir[i][1];
if(nx>n||ny>n||nx<1||ny<1||a[nx][ny]=='1')continue;
a[nx][ny]='1';
dfs(step+1,nx,ny);
a[nx][ny]='0';
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
cin>>x1>>y1>>x2>>y2;
a[1][1]='1';
dfs(1,x1,y1);
if(f==0)cout<<"error";
return 0;
}
//一个dfs迷宫,第五行报错,望dalao指点