func_code_string: #include <bits/stdc++.h>   const int MAX_N = (int)3e5 + 123;   const long long inf = (long long)1e18 + 123;   using namespace std;   char ans[2][30];   string second;   pair<long long, long long> do_it(int l, int r) {     int len = r - l;     int last = 13 - (len + 1) / 2;     pair<long long, long long> res = make_pair(last, (len % 2));     swap(res.first, res.second);     last--;     for (int i = 1, id = last, down = 1; i <= len; i++) {       if (down) {         if (id + 1 < 13)           id++;         else           down = 0, id = 12;       } else         id--;       ans[down][id] = second[l + i - 1];     }     return res;   }   int main() {     cin >> second;     for (int i = 0; i + 1 < int((second).size()); i++)       if (second[i] == second[i + 1]) {         cout <<  Impossible ;         return 0;       }     int l = -1, r = -1;     for (int i = 0; i < int((second).size()); i++)       for (int j = i + 1; j < int((second).size()); j++)         if (second[i] == second[j]) l = i, r = j;     pair<long long, long long> hhey = do_it(l, r);     for (int len = l - 1, id = hhey.second, down = 1; len >= 0; len--) {       if (down) {         if (id)           id--;         else           id = 0, down = 0;       } else         id++;       ans[down][id] = second[len];     }     for (int len = r + 1, id = (hhey.second + hhey.first), up = 1;          len < int((second).size()); len++) {       if (up) {         if (id)           id--;         else           id = 0, up = 0;       } else         id++;       ans[up ^ 1][id] = second[len];     }     for (int i = 0; i < 2; i++) {       for (int j = 0; j < 13; j++) cout << ans[i][j];       cout << endl;     }     return 0;   }   