func_code_string: #include <bits/stdc++.h>   using namespace std;   int ni() {     int a;     scanf( %d , &a);     return a;   }   double nf() {     double a;     scanf( %lf , &a);     return a;   }   char sbuf[100005];   string ns() {     scanf( %s , sbuf);     return sbuf;   }   long long nll() {     long long a;     scanf( %lld , &a);     return a;   }   template <class T>   void out(T a, T b) {     bool first = true;     for (T i = a; i != b; ++i) {       if (!first) printf(   );       first = false;       cout << *i;     }     printf(  n );   }   template <class T>   void outl(T a, T b) {     for (T i = a; i != b; ++i) {       cout << *i <<   n ;     }   }   int n, m;   int moo(char c) {     if (c <=  9  && c >=  0 ) return c -  0 ;     return c -  A  + 10;   }   int a[6][6];   bool inside(int a) { return a >= 0 && a < 6; }   char ss[1005];   vector<string> ans;   void add(char c, int z, int num) {     int j;     sprintf(ss,  %c%d n , c, z + 1);     while (num) {       if (c ==  L ) {         int t = a[z][0];         for (j = (0); j < (((5))); ++j) a[z][j] = a[z][j + 1];         a[z][5] = t;       }       if (c ==  R ) {         int t = a[z][5];         for (j = (0); j < (((5))); ++j) a[z][5 - j] = a[z][4 - j];         a[z][0] = t;       }       if (c ==  U ) {         int t = a[0][z];         for (j = (0); j < (((5))); ++j) a[j][z] = a[j + 1][z];         a[5][z] = t;       }       if (c ==  D ) {         int t = a[5][z];         for (j = (0); j < (((5))); ++j) a[5 - j][z] = a[4 - j][z];         a[0][z] = t;       }       ans.push_back(ss);       --num;     }   }   int main() {     int i, j, k;     for (i = (0); i < (((6))); ++i) {       string s = ns();       for (j = (0); j < (((6))); ++j) a[i][j] = moo(s[j]);     }   startOver:     int done = 0;     for (i = (0); i < (((15))); ++i) {       for (j = (0); j < (((15))); ++j) {         int y = j;         int x = i - j;         if (inside(x) && inside(y)) {           int xx = -1, yy = -1;           int ii, jj;           for (ii = (0); ii < ((6)); ++ii)             for (jj = (0); jj < ((6)); ++jj)               if (a[ii][jj] == y * 6 + x) xx = jj, yy = ii;           ;           if (x == 5 && y == 0) x = 5;           if (xx == x && yy == y) {           } else {             bool needUp = 0;             if (yy == 5 && xx == 5) {               if (y == 5) {                 y = 4;                 add( U , x, 1);                 needUp = 1;               }               if (x < 4)                 add( L , 5, 4 - x);               else if (x > 4)                 add( R , 5, 1);               add( D , x, 5 - y);               add( L , 5, 1);               add( U , x, 5 - y);               if (x != 5) add( R , 5, 5 - x);               if (needUp) {                 add( D , x, 1);                 y = 5;               }             } else {               if (yy == 5 && xx != 4) {                 yy = 4;                 add( U , xx, 1);                 needUp = 1;               }               if (xx < 4)                 add( L , 5, 4 - xx);               else if (xx > 4)                 add( R , 5, 1);               add( D , xx, 5 - yy);               add( L , 5, 1);               add( U , xx, 5 - yy);               if (xx != 5) add( R , 5, 5 - xx);               if (needUp) {                 add( D , xx, 1);                 yy = 5;               }               needUp = 0;               if (y == 5) {                 y = 4;                 add( U , x, 1);                 needUp = 1;               }               if (x != 5) add( L , 5, 5 - x);               add( D , x, 5 - y);               add( R , 5, 1);               add( U , x, 5 - y);               if (x < 4)                 add( R , 5, 4 - x);               else if (x > 4)                 add( L , 5, 1);               if (needUp) {                 add( D , x, 1);                 y = 5;               }             }           }           if (a[y][x] != y * 6 + x) {             printf( %d %d n , x, y);             return 0;           }           ++done;         }         if (done == 34) {           if (a[5][5] != 35) {             add( L , 5, 3);             goto startOver;           }           printf( %d n , ans.size());           for (i = (0); i < (((ans.size()))); ++i) printf( %s , ans[i].c_str());           return 0;         }       }     }     return 0;   }   