#include <stdio.h>
int map[10][10];
int migong(int row,int col,int x,int y){
      int up=0,down=0,right=0,left=0,sum=0;
      if(x<row-1&&map[x+1][y]==0){
        down=1;
      }
      if(y<col-1&&map[x][y+1]==0){
         right=1;
      }
      sum=down+right;

    while(sum==1){                   //有一个位置就做
        map[x][y]=2;                 //该 位置为必经路,设为2,方便打印
        if(down==1){x++;down=0;}        
        if(up==1){x--;up=0;}
        if(right==1){y++;right=0;}
        if(left==1){y--;left=0;}      //选择路走。
      if(x==row-1&&y==col-1){map[x][y]=2;return 1;}   //只要变换坐标,就检查到终点没。没有这个24/26会失败
      if(x<row-1&&map[x+1][y]==0){             //下一个看看左右上下四条路,来路已经被换为2了,不走回头路
        down=1; 
      }
      if(x>0&&map[x-1][y]==0){
        up=1;
      }
      if(y>0&&map[x][y-1]==0){
        left=1;
      }
      if(y<col-1&&map[x][y+1]==0){
         right=1;
      }
      sum=up+down+right+left;                 //下一个点有几个位置,
    }
    //以上总结,直线道路
    //以下为岔口和死路,终点

      if(x==row-1&&y==col-1){map[x][y]=2;return 1;}         //唯一一个死路是终点为活路
      if(sum==0){return 0; }     //死路返回信号0
      if(sum>1){                    //岔路口,调用本函数,并接受信号是否死路,按理说只有一条活路
          map[x][y]=2;
          if(down==1){
            down=migong(row,col,x+1,y);
            if(down==1){return 1;}
            else{map[x+1][y]=1;}
          }
          if(up==1)  {
            up  =migong(row,col,x-1,y);
               if(up==1){return 1;}
               else{map[x-1][y]=0;}
          }

          if(right==1){
            right=migong(row,col,x,y+1);
            if(right==1){return 1;}
            else{map[x][y+1]=1;}
            }

          if(left==1){
            left=migong(row,col,x,y-1);
            if(left==1){return 1;}
            else{map[x][y-1]=1;}
            }
      }
    return 1;
}
int main() {

    for(int i=0;i<10;i++){
         for(int j=0;j<10;j++){
             map[i][j]=1;
         }
    }
    int a, b;
    scanf("%d %d\n", &a, &b); // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 

    for(int i=0;i<a;i++){
        for(int j=0;j<b;j++){
            scanf("%d ",&map[i][j]);
        }
    }
    int flag=migong(a,b,0,0);                    //规划路线

 /*   for(int i=0;i<10;i++){                         //打印看看路线是否正确,连续的2就是正确路线
         for(int j=0;j<10;j++){
             printf("%d ",map[i][j]);
         }
         printf("\n");
    }
*/
    int i=0,j=0;
    while(map[i][j]==2&&i<a&&j<b){    //打印步骤
        map[i][j]=3;                  //这里换位三,防止回头
        printf("(%d,%d)\n",i,j);

        if(i<a-1&&map[i+1][j]==2){            
          i++;
          continue;
        }
         if(i>0&&map[i-1][j]==2){
           i--;
           continue;
        }
        if(j>0&&map[i][j-1]==2){
           j--;
           continue;
        }
        if(j<b-1&&map[i][j+1]==2){
           j++;
           continue;
        }
    }
    
    //从0,0到a-1,b-1

    
    return 0;
}