def find(x, y): #查找从(x,y)到终点的路径
    dx = [-1, 1, 0, 0] #每次移动一点,x坐标的变化
    dy = [0, 0, 1, -1] #每次移动一点,y坐标的变化,顺序并不会影响,只要x,y都遍历1, -1, 0, 0就可以
    if x == m-1 and y == n-1:
        #判定到达goal,输出路线
        for i in route:
            print("(" + str(i[0]) + "," + str(i[1]) + ")")#注意int要转化成str
        return
    for i in range(4):
        xr = x + dx[i]#每次x或y移动一格(1或-1),注意用新的xr储存,不能直接在x上做运算,否则下个循环x就不是初始值了
        yr = y + dy[i]
        #注意判定xr和yr是否是在矩阵范围内的,并且矩阵值为0,没有被访问过
        if xr>=0 and xr<m and yr>=0 and yr<n and map1[xr][yr] == 0:
            map1[xr][yr] = 1 #设定被访问过
            route.append((xr,yr)) #记录路径
            find(xr, yr) #用递归的方法继续搜索
            # 回溯,把矩阵值清零,把路径去掉新加入的点,路径相当于栈
            map1[x][y] = 0
            route.pop()
while True:
    try:
        m, n = map(int, input().split())
        map1 = [] #用矩阵储存每个点0或者1,0是可以走的路线,1是墙或者走过的路线
        for i in range(m):
            map1.append(list(map(int, input().split())))
        route = [(0, 0)] # 经过的路径点记录
        map1[0][0] = 1 #先把起点设为走过的地方
        find(0, 0) #用recursion递归,回溯的方式查找从起点到终点的路径
    except Exception:
        break