/*
* 时间: 2021-05-18
* 思路: DFS
*/
import java.util.*;
public class Main {
public static final int[] dir = {1, 0, -1, 0, 1};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int row = sc.nextInt();
int col = sc.nextInt();
int[][] map = new int[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
map[i][j] = sc.nextInt();
}
}
Deque<String> result = new LinkedList<>();
Deque<String> output = new LinkedList<>();
dfs(map, 0, 0, result, output);
while (!output.isEmpty()) {
System.out.println(output.removeLast());
}
}
}
public static void dfs(int[][] map, int i, int j, Deque<String> result, Deque<String> output) {
if (i == map.length - 1 && j == map[0].length - 1) {
if (output.isEmpty() || result.size() < output.size()) {
output.clear();
output.addAll(result);
// 将当前节点入栈
output.push("(" + i + "," + j + ")");
}
return;
}
if (i < 0 || i >= map.length || j < 0 || j >= map[0].length) {
return;
}
if (map[i][j] == 1) {
return;
}
for (int m = 0; m < 4; m++) {
map[i][j] = 1;
result.push("(" + i + "," + j + ")");
dfs(map, i + dir[m], j + dir[m + 1], result, output);
map[i][j] = 0;
result.pop();
}
}
}