#include <iostream>
using namespace std;
int n,m;
int pic[100][100];
struct pos{
int x,y;
};
bool vis[100][100];
pos a,b;
void dfs(pos a1,pos b1){
cout<<'('<<a1.x<<','<<a1.y<<')';
if (a1.x==b1.x&&a1.y==b1.y){
cout<<endl;
return;
}
cout<<'->';
if (a1.x+1<=n&&pic[a1.x+1][a1.y]!=0&&vis[a1.x+1][a1.y]==0){
pos f={a1.x+1,a1.y};
dfs(f,b1);
}
if (a1.x-1>=1&&pic[a1.x-1][a1.y]!=0&&vis[a1.x-1][a1.y]==0){
pos f={a1.x-1,a1.y};
dfs(f,b1);
}
if (a1.y+1<=n&&pic[a1.x][a1.y+1]!=0&&vis[a1.x][a1.y+1]==0){
pos f={a1.x,a1.y+1};
dfs(f,b1);
}
if (a1.y-1>=1&&pic[a1.x][a1.y-1]!=0&&vis[a1.x][a1.y-1]==0){
pos f={a1.x,a1.y-1};
dfs(f,b1);
}
return;
}
int main(){
vis[1][1]=1;
cin>>n>>m;
for (int i=1;i<=n;i++){
for (int j=1;i<=m;j++){
cin>>pic[i][j];
}
}
cin>>a.x>>a.y>>b.x>>b.y;
dfs(a,b);
return 0;
}