#include <iostream> #include <algorithm> #include <vector> #include <map> using namespace std; int row = 0, col = 0; vector<vector<int> > vec; vector<pair<int, int> > ans; vector<pair<int, int> > temp; void dfs(int a, int b) { temp.push_back({a, b}); vec[a][b] = 1; if(a == row - 1 && b == col - 1) { ans = temp; return ; } if(a - 1 >= 0 && vec[a - 1][b] == 0 ) dfs(a - 1, b);//上 if(a + 1 <= row - 1 && vec[a + 1][b] == 0 ) dfs(a + 1, b);//下 if(b - 1 >= 0 && vec[a][b - 1] == 0 ) dfs(a, b - 1);//左 if(b + 1 <= col - 1 && vec[a][b + 1] == 0 ) dfs(a, b + 1);//右 vec[a][b] = 0; temp.pop_back(); } int main(int argc, char* argv[]) { while(cin >> row >> col) { for(int i = 0; i < row; ++i) { vector<int> temp; for(int j = 0; j < col; ++j) { int val = 0; cin >> val; temp.push_back(val); } vec.push_back(temp); } dfs(0, 0); for(auto c : ans) { cout << "(" << c.first << "," << c.second << ")" << endl; } vec.clear(); ans.clear(); temp.clear(); } return 0; }