func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     string name;     cin >> name;     string right =   , left =   ;     int i = 0;     for (; true; i++) {       if (name[i] ==  | ) {         break;       }       left += name[i];     }     i++;     for (; i < name.length(); i++) {       right += name[i];     }     int ll = left.length();     int rl = right.length();     string toAdd;     cin >> toAdd;     if (abs(rl - ll) == 0) {       if (toAdd.length() % 2 == 0) {         for (int i = 0; i < toAdd.length(); i += 2) {           right += toAdd[i];           left += toAdd[i + 1];         }         cout << left <<  |  << right;       } else {         cout <<  Impossible ;       }     } else if (abs(rl - ll) == toAdd.length()) {       if (rl > ll) {         for (int i = 0; i < (rl - ll); i++) {           left += toAdd[i];         }         cout << left <<  |  << right;       } else {         for (int i = 0; i < (ll - rl); i++) {           right += toAdd[i];         }         cout << left <<  |  << right;       }     } else if (abs(ll - rl) < toAdd.length()) {       if ((rl + ll + toAdd.length()) % 2 == 0) {         if (rl > ll) {           for (int i = 0; i < (rl - ll); i++) {             left += toAdd[i];           }           for (int i = abs(ll - rl); i < toAdd.length(); i += 2) {             right += toAdd[i];             left += toAdd[i + 1];           }           cout << left <<  |  << right;         } else {           for (int i = 0; i < (ll - rl); i++) {             right += toAdd[i];           }           for (int i = abs(ll - rl); i < toAdd.length(); i += 2) {             right += toAdd[i];             left += toAdd[i + 1];           }           cout << left <<  |  << right;         }       } else {         cout <<  Impossible ;       }     } else {       cout <<  Impossible ;     }     return 0;   }   