#include <bits/stdc++.h>
using namespace std;
int a[1000][1000],r[1000][3],vis[1000][1000];
int n,m;
int b,c,d,e;
int dx[4]={0,-1,0,1};
int dy[4]={-1,0,1,0};
int flag;
int print(int k){
for(int i=0;i<k;i++){
cout<<"("<<r[i][0]<<","<<r[i][1]<<")"<<"->";
}
cout<<"("<<d<<","<<e<<")"<<endl;
flag=0;
}
void dfs(int x,int y,int k){
if(x<1||y<1||x>n||y>m||vis[x][y]==true||a[x][y]==0){
return;
}else{
vis[x][y]=true;
r[k][0]=x;
r[k][1]=y;
if(x==d&&y==e){
print(k);
}
for(int i=0;i<=3;i++){
int tx=x+dx[i];
int ty=y+dy[i];
dfs(tx,ty,k+1);
}
vis[x][y]=false;
}
}
int main(){
cin>>n>>m;
flag=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
cin>>b>>c>>d>>e;
if (a[b][c] == 0) {
cout<<"-1";
return 0;
}
dfs(b,c,0);
if(flag){
cout<<-1;
}
}