#include<bits/stdc++.h>
using namespace std;
int n,m,way[1010101][2];
int mx[5]={0,0,1,0,-1},my[5]={0,-1,0,1,0};
int map1[16][16],l;
int zhon,dian,ans=0;
void dfs(int x,int y){
if(x==zhon&&y==dian){
cout<<l<<endl;
for(int i=1;i<=l;i++){
cout<<"("<<way[i][1]<<","<<way[i][2]<<")->";
}
cout<<endl;
l=0;
ans++;
return ;
}
for(int i=1;i<=4;i++){
if(map1[x+my[i]][y+mx[i]]==0&&y+mx[i]<m&&x+my[i]<n&&x+my[i]>0&&y+mx[i]>0){
cout<<x+my[i]<<" "<<y+mx[i]<<endl;
map1[x+my[i]][y+mx[i]]=1;
l++;
dfs(x+my[i],y+mx[i]);
l--;
map1[x+my[i]][y+mx[i]]=0;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>map1[i][j];
}
}
int x,y;
cin>>x>>y>>zhon>>dian;
dfs(x,y);
if(ans==0){
cout<<-1;
}
}