func_code_string: #include <bits/stdc++.h>   using namespace std;   long long bigmod(long long b, long long p, long long md) {     if (p == 0) return 1;     if (p % 2 == 1) {       return ((b % md) * bigmod(b, p - 1, md)) % md;     } else {       long long y = bigmod(b, p / 2, md);       return (y * y) % md;     }   }   int cnt[70];   char getchar(int a) {     if (a >= 0 && a <= 9)       return  0  + a;     else if (a >= 10 && a <= 35)       return  a  + a - 10;     else       return  A  + a - 36;   }   int main() {     int n;     cin >> n;     string str;     cin >> str;     for (int i = 0; i < n; i++) {       if (str[i] >=  0  && str[i] <=  9 )         cnt[str[i] -  0 ]++;       else if (str[i] >=  a  && str[i] <=  z )         cnt[str[i] -  a  + 10]++;       else         cnt[str[i] -  A  + 36]++;     }     vector<int> odd;     for (int i = 0; i <= 61; i++) {       if (cnt[i] % 2) {         odd.push_back(i);       }     }     if (odd.size() == 0) {       cout << 1 << endl;       deque<char> dq;       for (int i = 0; i <= 61; i++) {         while (cnt[i]) {           dq.push_back(getchar(i));           dq.push_front(getchar(i));           cnt[i] -= 2;         }       }       for (auto it = dq.begin(); it != dq.end(); it++) cout << *it;       cout << endl;       return 0;     }     int sz = 0;     for (int i = odd.size(); i <= str.size(); i += 2) {       if (str.size() % i) continue;       sz = str.size() / i;       if (sz % 2) break;     }     int total = str.size() / sz;     cout << total << endl;     int c = 0;     while (c != total) {       deque<char> dq;       if (c < odd.size())         dq.push_back(getchar(odd[c])), cnt[odd[c]]--;       else {         for (int i = 0; i <= 61; i++) {           if (cnt[i]) {             dq.push_back(getchar(i));             cnt[i]--;             break;           }         }       }       for (int i = 0; i <= 61; i++) {         while (cnt[i] >= 2 && dq.size() < sz) {           dq.push_back(getchar(i));           dq.push_front(getchar(i));           cnt[i] -= 2;         }       }       for (auto it = dq.begin(); it != dq.end(); it++) cout << *it;       cout <<    ;       c++;     }     return 0;   }   