#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 10;
int fir[30];
string ans[2];
int main() {
  ios_base ::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  string s;
  cin >> s;
  fill(fir, fir + 26, 30);
  ans[0].resize(13), ans[1].resize(13);
  bool fl = false;
  int pl1, pl2;
  for (int i = 0; i < ((int)(s).size()); ++i) {
    if (fir[s[i] - 'A'] == 30)
      fir[s[i] - 'A'] = i;
    else {
      if (i > fir[s[i] - 'A'] + 1) {
        pl1 = fir[s[i] - 'A'], pl2 = i;
        fl = true;
        break;
      }
    }
  }
  if (!fl) return cout << "Impossible\n", 0;
  int len = pl2 - pl1 - 1;
  if (len & 1) {
    int pnt = pl1;
    ans[1][len / 2] = s[pnt++];
    ans[0][len / 2] = s[pnt++];
    for (int i = len / 2 - 1; ~i; --i) ans[0][i] = s[pnt++];
    for (int i = 0; i < len / 2; ++i) ans[1][i] = s[pnt++];
    pnt = pl1 - 1;
    for (int i = len / 2 + 1; i < 13 && ~pnt; ++i) ans[0][i] = s[pnt--];
    for (int i = 12; i > len / 2 && ~pnt; --i) ans[1][i] = s[pnt--];
    pnt = pl2 + 1;
    for (int i = len / 2 + 1; i < 13 && pnt < ((int)(s).size()); ++i)
      ans[1][i] = s[pnt++];
    for (int i = 12; i > len / 2 && pnt < ((int)(s).size()); --i)
      ans[0][i] = s[pnt++];
  } else {
    int pnt = pl1;
    ans[1][len / 2] = s[pnt++];
    for (int i = len / 2 - 1; ~i; --i) ans[0][i] = s[pnt++];
    for (int i = 0; i < len / 2; ++i) ans[1][i] = s[pnt++];
    pnt = pl1 - 1;
    if (pnt >= 0) ans[0][len / 2] = s[pnt--];
    for (int i = len / 2 + 1; i < 13 && ~pnt; ++i) ans[0][i] = s[pnt--];
    for (int i = 12; ~i && ~pnt; --i) ans[1][i] = s[pnt--];
    pnt = pl2 + 1;
    for (int i = len / 2 + 1; i < 13 && pnt < ((int)(s).size()); ++i)
      ans[1][i] = s[pnt++];
    for (int i = 12; ~i && pnt < ((int)(s).size()); --i) ans[0][i] = s[pnt++];
  }
  for (int i = 0; i < 2; ++i) cout << ans[i] << endl;
  return 0;
}
