#include<bits/stdc++.h>
using namespace std;
char a[51][51];
int b[51][51];
bool vis[51][51];
int num[51][51];
int k;
int c,d,e,f,n,m;
int check;
bool p=0;
void dfs(int x,int y,int tot)
{
if(x==c&&y==d)
{
p=1;
cout<<"("<<e<<","<<f<<")"<<"->";
for(int v=1;v<tot;v++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(num[i][j]==v)
{
cout<<"("<<i<<","<<j<<")";
if(v<tot)
{
cout<<"->";
}
}
}
}
}
cout<<"("<<c<<","<<d<<")";
cout<<endl;
return;
}
if(x>0&&x<=n&&y-1>0&&y-1<=m&&b[x][y-1]==1&&vis[x][y-1]==0)
{
vis[x][y-1]=1;
num[x][y-1]=tot+1;
dfs(x,y-1,tot+1);
vis[x][y-1]=0;
num[x][y-1]=0;
}
if(x-1>0&&x-1<=n&&y>0&&y<=m&&b[x-1][y]==1&&vis[x-1][y]==0)
{
vis[x-1][y]=1;
num[x-1][y]=tot+1;
dfs(x-1,y,tot+1);
vis[x-1][y]=0;
num[x-1][y]=0;
}
if(x>0&&x<=n&&y+1>0&&y+1<=m&&b[x][y+1]==1&&vis[x][y+1]==0)
{
vis[x][y+1]=1;
num[x][y+1]=tot+1;
dfs(x,y+1,tot+1);
vis[x][y+1]=0;
num[x][y+1]=0;
}
if(x+1>0&&x+1<=n&&y>0&&y<=m&&b[x+1][y]==1&&vis[x+1][y]==0)
{
vis[x+1][y]=1;
num[x+1][y]=tot+1;
dfs(x+1,y,tot+1);
vis[x+1][y]=0;
num[x+1][y]=0;
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>b[i][j];
}
}
cin>>e>>f>>c>>d;
num[e][f]=1;
dfs(e,f,1);
if(p==0)
{
cout<<-1;
}
return 0;
}