rt
#include <bits/stdc++.h>
using namespace std;
int n, m, isOk, zdx, zdy, qdx, qdy;
char a[25][25];
bool vis[25][25];
int anx[20*20],any[20*20];
int dx[5]={1,-1,0,0};
int dy[5]={0,0,-1,1};
void dfs(int x, int y, int b) {
if(x == zdx && y == zdy){
isOk = true;
for(int i=0;i<b;i++){
cout<<"("<<anx[i]<<","<<any[i]<<")"<<"->";
}
cout<<"("<<anx[b]<<","<<any[b]<<")"<<"\n";
return;
}
for(int i=0;i<4;i++){
int kx=x+dx[i];
int ky=y+dy[i];
if(kx>=1&&kx<=n&&ky>=1&&ky<=m&&a[kx][ky]=='1'&&vis[kx][ky]==0){
anx[b+1]=kx;
any[b+1]=ky;
vis[kx][ky]=1;
dfs(kx,ky,b+1);
vis[kx][ky]=0;
}
}
}
int main(void) {
cin >> n >> m;
for(int i = 1; i <= n; i++)
cin >> (a[i] + 1);
cin>>qdx;
cin>>qdy;
cin>>zdx;
cin>>zdy;
dfs(qdx,qdy,0);
if(!isOk)
cout << "-1" << endl;
return 0;
}