func_code_string: #include <bits/stdc++.h>   using namespace std;   const int m = 10;   int a[10], b[10], ap[10], bp[10];   int n;   int main() {     memset(a, 0, sizeof(a));     memset(b, 0, sizeof(b));     string s;     cin >> s;     n = int(s.size());     for (int i = 0; i < n; ++i) {       int num = s[i] -  0 ;       ++ap[num];       ++bp[num];     }     int ans = 0;     int ln = -1;     for (int i = 0; i < m; ++i) {       for (int j = 0; j < m; ++j) {         a[j] = ap[j];         b[j] = bp[j];       }       int p = 0;       int pans = 0;       if (i == 0 && a[0] > 0 && b[0] > 0) {         --a[0];         --b[0];         ++pans;       } else {         if (i != 0 && a[i] > 0 && b[m - i] > 0) {           --a[i];           --b[m - i];           p = 1;           ++pans;         } else           continue;       }       for (int j = 0; j < n; ++j) {         for (int k = 0; k < m; ++k) {           if (k == 0 && p == 0 && a[0] > 0 && b[0] > 0) {             --a[0];             --b[0];             ++pans;             break;           }           if (a[k] > 0 && b[m - p - k] > 0) {             --a[k];             --b[m - p - k];             ++pans;             p = 1;             break;           }         }       }       pans += min(a[0], b[0]);       if (pans > ans) {         ans = pans;         ln = i;       }     }     for (int j = 0; j < m; ++j) {       a[j] = ap[j];       b[j] = bp[j];     }     string sa, sb;     {       int p = 0;       int i = ln;       if (i == 0 && a[0] > 0 && b[0] > 0) {         --a[0];         --b[0];         sa +=  0 ;         sb +=  0 ;       } else {         if (i != 0 && a[i] > 0 && b[m - i] > 0) {           --a[i];           --b[m - i];           p = 1;           sa += char(i +  0 );           sb += char(m - i +  0 );         } else {           cout << s << endl << s << endl;           return 0;         }       }       for (int j = 0; j < n; ++j) {         for (int k = 0; k < m; ++k) {           if (k == 0 && p == 0 && a[0] > 0 && b[0] > 0) {             --a[0];             --b[0];             sa +=  0 ;             sb +=  0 ;             break;           }           if (a[k] > 0 && b[m - p - k] > 0) {             --a[k];             --b[m - p - k];             sa += char(k +  0 );             sb += char(m - p - k +  0 );             p = 1;             break;           }         }       }     }     int T = min(a[0], b[0]);     a[0] -= T;     b[0] -= T;     for (int i = 0; i < m; ++i) {       while (a[i] > 0) {         --a[i];         sa += i +  0 ;       }     }     for (int i = 0; i < m; ++i) {       while (b[i] > 0) {         --b[i];         sb += i +  0 ;       }     }     reverse(sa.begin(), sa.end());     reverse(sb.begin(), sb.end());     cout << sa;     for (int i = 0; i < T; ++i) printf( 0 );     cout << endl;     cout << sb;     for (int i = 0; i < T; ++i) printf( 0 );     cout << endl;     return 0;   }   