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