#include<iostream>
using namespace std;
struct js
{
int x;
int y;
};
int movex[4]={0,-1,0,1},
movey[4]={-1,0,1,0};
int m,n,x,y,x1,y1,a[16][16],k=0,flag=0;
js f[260];
int print();
int search(int x,int y);
int main()
{
cin>>m>>n;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
cin>>x>>y>>x1>>y1;
a[x][y]=0;
f[k].x=x;
f[k].y=y;
search(x,y);
if(flag==0)
{
cout<<"-1"<<endl;
}
}
int print()
{
flag=1;
for(int i=0;i<k-1;i++)
{
cout<<"("<<f[i].x<<","<<f[i].y<<")->";
}
cout<<"("<<f[k].x<<","<<f[k].y<<")"<<endl;
}
int search(int x,int y)
{
if(x==x1&&y==y1)
{
print();
return 0;
}
for(int i=0;i<4;i++)
{
if(a[x+movex[i]][y+movey[i]]==1&&x+movex[i]>=1&&x+movex[i]<=m&&y+movey[i]>=1&&y+movey[i]<=n)
{
x+=movex[i];
y+=movey[i];
a[x][y]=0;
k++;
f[k].x=x;
f[k].y=y;
search(x,y);
k--;
a[x][y]=1;
x-=movex[i];
y-=movey[i];
}
}
}
20分