func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_N = 59;   struct State {     char c[MAX_N][MAX_N];   };   int H, W;   vector<pair<int, int>> solve(State S) {     vector<pair<int, int>> D;     for (int t = 1; t <= 100000; t++) {       bool flag = false;       if (H % 2 == 0) {         for (int i = 1; i <= H; i++) {           for (int j = 1; j <= W; j++) {             if (i % 2 == 1 && S.c[i][j] !=  U ) flag = true;             if (i % 2 == 0 && S.c[i][j] !=  D ) flag = true;           }         }       } else {         for (int i = 1; i <= H; i++) {           for (int j = 1; j <= W; j++) {             if (j % 2 == 1 && S.c[i][j] !=  L ) flag = true;             if (j % 2 == 0 && S.c[i][j] !=  R ) flag = true;           }         }       }       if (flag == false) return D;       for (int i = 1; i <= H - 1; i++) {         for (int j = 1; j <= W - 1; j++) {           if (t % 2 == 1) {             if (S.c[i][j] ==  U  && S.c[i][j + 1] ==  U  &&                 S.c[i + 1][j] ==  D  && S.c[i + 1][j + 1] ==  D ) {               S.c[i + 0][j + 0] =  L ;               S.c[i + 0][j + 1] =  R ;               S.c[i + 1][j + 0] =  L ;               S.c[i + 1][j + 1] =  R ;               D.push_back(make_pair(i, j));             }           }           if (t % 2 == 0) {             if (S.c[i][j] ==  L  && S.c[i][j + 1] ==  R  &&                 S.c[i + 1][j] ==  L  && S.c[i + 1][j + 1] ==  R ) {               S.c[i + 0][j + 0] =  U ;               S.c[i + 0][j + 1] =  U ;               S.c[i + 1][j + 0] =  D ;               S.c[i + 1][j + 1] =  D ;               D.push_back(make_pair(i, j));             }           }         }       }     }     return D;   }   int main() {     cin >> H >> W;     State T, U;     for (int i = 1; i <= H; i++) {       for (int j = 1; j <= W; j++) cin >> T.c[i][j];     }     vector<pair<int, int>> D1 = solve(T);     for (int i = 1; i <= H; i++) {       for (int j = 1; j <= W; j++) cin >> U.c[i][j];     }     vector<pair<int, int>> D2 = solve(U);     vector<pair<int, int>> D3 = D1;     for (int i = D2.size() - 1; i >= 0; i--) D3.push_back(D2[i]);     cout << D3.size() << endl;     for (int i = 0; i < D3.size(); i++)       cout << D3[i].first <<     << D3[i].second << endl;     return 0;   }   