#include<bits/stdc++.h>
#define N 100010
using namespace std;
typedef long long ll;
int a[20][20],z[100][5],f[20][20],hx,hy,dx[]={0,-1,0,1},dy[]={-1,0,1,0},n,m,l=0;
bool flag = false;
void dfs(int x,int y,int l)
{
if (x==hx && y==hy)
{
for (int i=0;i<l;i++)
cout << "(" << z[i][1] << "," << z[i][2] << ")" << "->";
cout << "(" << z[l][1] << "," << z[l][2] << ")" << endl;
flag = true;
return ;
}
for (int i=0;i<4;i++)
{
int xx = x+dx[i],yy = y+dy[i];
if (a[xx][yy]==1 && xx<=n && yy<=m && f[xx][yy])
{
f[xx][yy] = false;
z[++l][1] = xx,z[l][2] = yy;
dfs(xx,yy,l);
f[xx][yy] = true;
l--;
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
cin >> a[i][j];
int x,y;
cin >> x >> y >> hx >> hy;
z[0][1] = x,z[0][2] = y;
memset(f,true,sizeof(f));
dfs(x,y,0);
if (!flag) cout << -1 << endl;
return 0;
}