def dfs(x,y):
    w=lambda x,y:(x-1,y)
    s=lambda x,y:(x+1,y)
    a=lambda x,y:(x,y-1)
    d=lambda x,y:(x,y+1)
    if x==m-1 and y==n-1:
        for p in route:
            print('('+str(p[0])+','+str(p[1])+')')
        return
    for i in [w,s,a,d]:
        r=(i(x,y))
        if r[0]>=0 and r[0]<m and r[1]>=0 and r[1]<n and maze[r[0]][r[1]]==0:
            maze[r[0]][r[1]]=1
            route.append((r[0],r[1]))
            dfs(r[0], r[1])
            maze[r[0]][r[1]]=0
            route.pop()
    else:
        return
while True:
    try:
        m,n=list(map(int,input().split()))
        maze=[]
        for i in range(m):
            maze.append(list(map(int,input().split())))
        route=[(0,0)]
        maze[0][0]=1
        dfs(0,0)
    except:
        break