func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:100000000 )   using namespace std;   int n;   string s;   string A[] = { 123456 ,  154236 ,  145326 ,  516324 ,  261453 ,  132546 };   string B[] = { 123456 ,  523164 ,  623541 ,  423615 };   vector<string> P;   vector<string> T;   vector<string> H;   bool BB[1000];   bool F(string a, string b) {     for (long long(i) = (0); (i) < (T.size()); ++(i)) {       string t = a;       for (long long(j) = (0); (j) < (6); ++(j)) t[j] = a[T[i][j] -  0 ];       if (t == b) return true;     }     return false;   }   int main() {     cin >> s;     int Q[6];     for (long long(i) = (0); (i) < (6); ++(i)) Q[i] = i;     do {       string p =   ;       for (long long(i) = (0); (i) < (6); ++(i)) p += char( 0  + Q[i]);       P.push_back(p);     } while (next_permutation(Q, Q + 6));     for (long long(i) = (0); (i) < (6); ++(i))       for (long long(j) = (0); (j) < (4); ++(j)) {         string t = A[i];         string p = t;         for (long long(k) = (0); (k) < (6); ++(k)) {           int x = B[j][k] -  0 ;           x--;           p[k] = t[x];           p[k]--;         }         T.push_back(p);       }     for (long long(i) = (0); (i) < (P.size()); ++(i)) {       string t =   ;       for (long long(j) = (0); (j) < (6); ++(j)) t += s[P[i][j] -  0 ];       H.push_back(t);     }     int res = 0;     for (long long(i) = (0); (i) < (H.size()); ++(i))       if (BB[i] == false) {         res++;         for (long long(j) = (i + 1); (j) < (H.size()); ++(j))           if (F(H[i], H[j])) BB[j] = true;       }     cout << res << endl;     return 0;   }   