#include<bits/stdc++.h>
using namespace std;
struct point{int x,y;}ans[100000];
int a[20][20],n,m,sx,sy,tx,ty,cnt=1;
int dx[]={0,-1,0,1};
int dy[]={-1,0,1,0};
bool vis[20][20],answer;
void dfs(int x,int y){
if(x==tx && y==ty){
for(int i=1;i<cnt;i++)printf("(%d,%d)->",ans[i].x,ans[i].y);
printf("(%d,%d)
",ans[cnt].x,ans[cnt].y);
answer=true;
}
for(int i=0;i<=3;i++)
if(a[x+dx[i]][y+dy[i]] && !vis[x+dx[i]][y+dy[i]]){
vis[x+dx[i]][y+dy[i]]=true;
ans[++cnt].x=x+dx[i]; ans[cnt].y=y+dy[i];
dfs(x+dx[i],y+dy[i]);
cnt--;
vis[x+dx[i]][y+dy[i]]=false;
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);
scanf("%d%d%d%d",&sx,&sy,&tx,&ty);
vis[sx][sy]=true;
ans[1].x=sx; ans[1].y=sy;
dfs(sx,sy);
if(!answer)printf("-1
");
return 0;
}