#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y,from;
}que[30];
int fx[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int f,r;
int mp[10][10];
void pr(int p){
if(p==0){
return ;
}
pr(que[p].from);
cout<<"("<<que[p].x<<", "<<que[p].y<<")"<<endl;
}
void bfs(int x,int y){
f=r=1;
que[r].x=x , que[r].y=y , que[r].from=0 ,mp[x][y]=1;
while(f<=r){
node t;
t.x=que[f].x , t.y=que[f].y;
if(t.x==4 && t.y==4){
pr(f);
}
for(int i=0;i<4;i++){
int nx=t.x+fx[i][0];
int ny=t.y+fx[i][1];
if(nx>=0 && nx<5 && ny>=0 && ny<5 && mp[nx][ny]==0){
mp[nx][ny]=1;
r++;
que[r].x=nx;
que[r].y=ny;
que[r].from=f;
}
}
f++;
}
}
int main(){
memset(mp,0,sizeof(mp));
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cin>>mp[i][j];
}
}
bfs(0,0);
return 0;
}