#include<stdio.h>
int tx,ty;
int map[5][5],flag[5][5];
int next[4][2]={0,1,1,0,0,-1,-1,0};
struct arr
{
int x,y;
}ac[100];
int step=0;
void back(int step)
{
if(step!=-1)
{
back(step-1);
printf("(%d, %d)\n",ac[step].x,ac[step].y);
}
}
void bfs(int x,int y,int step)
{
if(x==4&&y==4)
{
back(step-1);
return;
}
for(int i=0;i<4;i++)
{
tx=x+next[i][0];
ty=y+next[i][1];
if(tx<0||tx>4||ty<0||ty>4)
continue;
if(flag[tx][ty]==0&&map[tx][ty]==0)
{
ac[step].x=tx;
ac[step].y=ty;
flag[tx][ty]=1;
bfs(tx,ty,step+1);
flag[tx][ty]=0;
}
}
}
int main()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
scanf("%d",&map[i][j]);
}
}
flag[0][0]=1;
printf("(0, 0)\n");
bfs(0,0,0);
return 0;
}