#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; }