import java.util.LinkedList;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static LinkedList<Integer>stack = new LinkedList<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int h = in.nextInt();
int w = in.nextInt();
int[][]arr = new int[h][w];
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
arr[i][j] = in.nextInt();
}
}
boolean[][]visit = new boolean[h][w];
dfs(0, 0, visit, arr);
while (!stack.isEmpty()) {
int index = stack.pop();
System.out.print('(');
System.out.print(index / w);
System.out.print(',');
System.out.print(index % w);
System.out.println(')');
}
}
}
public static boolean dfs(int i, int j, boolean[][]visit, int[][]arr) {
visit[i][j] = true;
if (i == arr.length - 1 && j == arr[0].length - 1) {
stack.push(i * arr[0].length + j);
return true;
}
if (i - 1 >= 0 && !visit[i - 1][j] && arr[i - 1][j] == 0) {
if (dfs(i - 1, j, visit, arr)) {
stack.push(i * arr[0].length + j);
return true;
}
}
if (i + 1 < arr.length && !visit[i + 1][j] && arr[i + 1][j] == 0) {
if (dfs(i + 1, j, visit, arr)) {
stack.push(i * arr[0].length + j);
return true;
}
}
if (j - 1 >= 0 && !visit[i][j - 1] && arr[i][j - 1] == 0) {
if (dfs(i, j - 1, visit, arr)) {
stack.push(i * arr[0].length + j);
return true;
}
}
if (j + 1 < arr[0].length && !visit[i][j + 1] && arr[i][j + 1] == 0) {
if (dfs(i, j + 1, visit, arr)) {
stack.push(i * arr[0].length + j);
return true;
}
}
visit[i][j] = false;
return false;
}
}