#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7, MxN = 1e6 + 7, mod = 1e9 + 7, inf = 2e9 + 7;
const long long linf = (long long)1e18 + 7;
const long double eps = 1e-9, pi = 3.141592;
const int ii[] = {-1, 0, 1, 0, 1, -1, -1, 1},
          jj[] = {0, 1, 0, -1, 1, -1, 1, -1};
string s;
string ans[3][20];
int l, r, df, v = 0;
int cnt[256];
inline int Get(int x) { return (x / 2 - (x % 2 == 0)); }
inline void Next(int &x) {
  if (x == 26)
    x = 0;
  else
    x++;
  if (s[x] == s[l - 1] || s[x] == s[r - 1]) {
    Next(x);
  }
}
int main() {
  cin >> s;
  for (int i = 0; i < (int)s.size(); i++) {
    if (s[i] == s[i - 1]) cout << "Impossible", exit(0);
    cnt[s[i]]++;
  }
  for (int i = 0; i < (int)s.size(); i++) {
    if (cnt[s[i]] == 2) {
      if (!l)
        l = i + 1;
      else
        r = i + 1;
    }
  }
  df = r - l;
  for (int i = 12 - Get(df), j = l - 1; j >= 0; i--, j--) ans[1][i] = s[j];
  int kth = l;
  for (int i = 12 - Get(df) + 1; i < 13; i++) ans[1][i] = s[kth], Next(kth);
  for (int i = 12; i >= 0; i--)
    if (!(int)ans[2][i].size()) ans[2][i] = s[kth], Next(kth);
  for (int i = 0; i <= 12; i++)
    if (!(int)ans[1][i].size()) ans[1][i] = s[kth], Next(kth);
  for (int i = 1; i <= 2; i++, cout << '\n')
    for (int j = 0; j < 13; j++)
      if (!(int)ans[i][j].size())
        cout << 0;
      else
        cout << ans[i][j];
  exit(0);
}
