#include<iostream>
#include<cstdio>
using namespace std;
int dx[5]={0,0,-1,0,1},dy[5]={0,-1,0,1,0},n,m,sx,sy,ex,ey;
struct node
{
int ansx,ansy;
}ans[230];
bool martix[15][15],judge[15][15],f=true;
inline void print(int k){
f=false;
for(int i=1;i<k;i++) printf("(%d,%d)->",ans[i].ansx,ans[i].ansy);
printf("(%d,%d)\n",n,m);
}
inline void dfs(int x,int y,int step){
ans[step].ansx=x;
ans[step].ansy=y;
if(x==ex&&y==ey){
print(step);
return;
}
for(int i=1;i<=4;i++){
int xx=x+dx[i],yy=y+dy[i];
if(!judge[xx][yy]&&martix[xx][yy]&&xx>=1&&xx<=n&&yy>=1&&yy<=m){
judge[xx][yy]=true;
dfs(xx,yy,step+1);
judge[xx][yy]=false;
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&martix[i][j]);
scanf("%d%d%d%d",&sx,&sy,&ex,&ey);
dfs(sx,sy,1);
if(f) printf("-1");
return 0;
}