#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;
}
