func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long mod = 1000000007;   long long powmod(long long a, long long b) {     long long res = 1;     a %= mod;     assert(b >= 0);     for (; b; b >>= 1) {       if (b & 1) res = res * a % mod;       a = a * a % mod;     }     return res;   }   const int N = 55;   int n, m, sw;   char s[N][N], t[N];   vector<pair<int, int> > ret1, ret2;   void gao(vector<pair<int, int> > &ret) {     for (int j = 0; j < m; j++) {       int i = 0;       while (i < n) {         if (s[i][j] ==  L ) {           for (int k = 0; i + k < n && j + k < m; k++) {             if (s[i + 1 + k][j + k] ==  L ) {               for (int l = k; l >= 0; l--) {                 ret.push_back(make_pair(i + l, j + l));                 s[i + l][j + l] = s[i + l][j + l + 1] =  U ;                 s[i + l + 1][j + l] = s[i + l + 1][j + l + 1] =  D ;                 if (l > 0) {                   ret.push_back(make_pair(i + l, j + l - 1));                   s[i + l][j + l - 1] = s[i + l + 1][j + l - 1] =  L ;                   s[i + l][j + l] = s[i + l + 1][j + l] =  R ;                 }               }               break;             }             if (s[i + 1 + k][j + 1 + k] ==  U ) {               for (int l = k; l >= 0; l--) {                 ret.push_back(make_pair(i + l + 1, j + l));                 s[i + l + 1][j + l] = s[i + l + 2][j + l] =  L ;                 s[i + l + 1][j + l + 1] = s[i + l + 2][j + l + 1] =  R ;                 ret.push_back(make_pair(i + l, j + l));                 s[i + l][j + l] = s[i + l][j + l + 1] =  U ;                 s[i + l + 1][j + l] = s[i + l + 1][j + l + 1] =  D ;               }               break;             }           }         }         i += 2;       }     }   }   int main() {     scanf( %d%d , &n, &m);     if (n % 2 == 1) {       sw = 1;       for (int i = 0; i < n; i++) {         scanf( %s , t);         for (int j = 0; j < m; j++) {           if (t[j] ==  L )             s[j][i] =  U ;           else if (t[j] ==  R )             s[j][i] =  D ;           else if (t[j] ==  U )             s[j][i] =  L ;           else             s[j][i] =  R ;         }       }       swap(n, m);     } else {       for (int i = 0; i < n; i++) scanf( %s , s[i]);     }     gao(ret1);     if (sw == 1) {       for (int i = 0; i < m; i++) {         scanf( %s , t);         for (int j = 0; j < n; j++) {           if (t[j] ==  L )             s[j][i] =  U ;           else if (t[j] ==  R )             s[j][i] =  D ;           else if (t[j] ==  U )             s[j][i] =  L ;           else             s[j][i] =  R ;         }       }     } else {       for (int i = 0; i < n; i++) scanf( %s , s[i]);     }     gao(ret2);     reverse((ret2).begin(), (ret2).end());     for (auto p : ret2) ret1.push_back(p);     if (sw) {       for (auto &p : ret1) swap(p.first, p.second);     }     printf( %d n , ((int)(ret1).size()));     for (auto p : ret1) printf( %d %d n , p.first + 1, p.second + 1);   }   