import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    private static int[] dX = new int[]{0, 0, 1, -1};
    private static int[] dY = new int[]{1, -1, 0, 0};

    private static int row;
    private static int column;
    private static int[][] matrix;
    private static boolean[][] visited;
    private static Step[][] pre;

    private static Queue<Step> stepsQueue = new LinkedList<>();

    /**
     * dfs
     * @param args
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (in.hasNext()){
            row = in.nextInt();
            column = in.nextInt();

            matrix = new int[row][column];
            visited = new boolean[row][column];
            pre = new Step[row][column];
            for(int i=0; i<row; i++){
                for(int j=0; j<column; j++){
                    matrix[i][j] = in.nextInt();
                }
            }

            solution();
        }
    }

    private static void solution(){
        Step start = new Step(0, 0);

        dfs(start);

        printPath(row-1, column-1);
    }

    private static void dfs(Step curr){
        if(curr.x==row-1 && curr.y==column-1){
            return;
        }

        visited[curr.x][curr.y] = true;

        for(int i=0; i<4; i++){
            Step next = new Step(curr.x+dX[i], curr.y+dY[i]);
            if(canGo(next)){
                pre[next.x][next.y] = curr;
                dfs(next);
            }
        }
        visited[curr.x][curr.y] = false;
    }
    
    private static boolean canGo(Step next){
        // 越界
        if(next.x<0 || next.y<0 || next.x>=row || next.y>=column){
            return false;
        }

        // 墙壁
        if(matrix[next.x][next.y] == 1){
            return false;
        }

        // 已访问
        if(visited[next.x][next.y]){
            return false;
        }

        return true;
    }

    private static void printPath(int x, int y){
        if(x==0 && y==0){
            System.out.println("("+x+","+y+")");
            return;
        }

        Step previous = pre[x][y];
        printPath(previous.x, previous.y);

        System.out.println("("+x+","+y+")");
    }

    private static class Step {
        int x;
        int y;

        private Step(int x, int y){
            this.x = x;
            this.y = y;
        }
    }



//    /**
//     * bfs
//     * @param args
//     */
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//
//        while (in.hasNext()){
//            row = in.nextInt();
//            column = in.nextInt();
//
//            matrix = new int[row][column];
//            visited = new boolean[row][column];
//            pre = new Step[row][column];
//            for(int i=0; i<row; i++){
//                for(int j=0; j<column; j++){
//                    matrix[i][j] = in.nextInt();
//                }
//            }
//
//            solution();
//        }
//    }
//
//    private static void solution(){
//        Step start = new Step(0, 0);
//        stepsQueue.add(start);
//
//        bfs();
//
//        printPath(row-1, column-1);
//    }
//
//    private static void bfs(){
//        while (stepsQueue.size()!=0){
//            Step curr = stepsQueue.poll();
//            if(curr.x==row-1 && curr.y==column-1){
//                break;
//            }
//            for(int i=0; i<4; i++){
//                Step next = new Step(curr.x+dX[i], curr.y+dY[i]);
//                if(canGo(next)){
//                    stepsQueue.add(next);
//                    pre[next.x][next.y] = curr;
//                }
//            }
//            visited[curr.x][curr.y] = true;
//        }
//    }
//
//    private static boolean canGo(Step next){
//        // 越界
//        if(next.x<0 || next.y<0 || next.x>=row || next.y>=column){
//            return false;
//        }
//
//        // 墙壁
//        if(matrix[next.x][next.y] == 1){
//            return false;
//        }
//
//        // 已访问
//        if(visited[next.x][next.y]){
//            return false;
//        }
//
//        return true;
//    }
//
//    private static void printPath(int x, int y){
//        if(x==0 && y==0){
//            System.out.println("("+x+","+y+")");
//            return;
//        }
//
//        Step previous = pre[x][y];
//        printPath(previous.x, previous.y);
//
//        System.out.println("("+x+","+y+")");
//    }
//
//    private static class Step {
//        int x;
//        int y;
//
//        private Step(int x, int y){
//            this.x = x;
//            this.y = y;
//        }
//    }
}