#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> path;
vector<vector<int>> dir = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};
bool found = false;
void dfs(vector<vector<int>>& maze, int x, int y) {
int h = maze.size();
int w = maze[0].size();
maze[x][y] = 1;
path.push_back({x, y});
if(x == h-1 && y == w-1) {
found = true;
return ;
}
for(int i = 0; i < 4; ++i) {
int xx = x + dir[i][0];
int yy = y + dir[i][1];
if(xx >= 0 && yy >= 0 && xx < h && yy < w && !maze[xx][yy]){
dfs(maze, xx, yy);
if(found) return ;
}
}
path.pop_back();
}
int main() {
int h, w;
cin >> h >> w;
vector<vector<int>> maze(h, vector<int>(w, 0));
for(int i = 0; i < h; ++i) {
for(int j = 0; j < w; ++j) {
cin >> maze[i][j];
}
}
path.clear();
dfs(maze, 0, 0);
for(auto p: path) {
cout << "(" << p[0] << "," << p[1] << ")" << endl;
}
return 0;
}