#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:64000000")
const int infi = 1e9 + 7;
const long long infl = 1e18 + 7;
char ans[2][13];
int cnt[26];
int main() {
  cin.sync_with_stdio(false);
  cin.tie(0);
  string s;
  cin >> s;
  for (int i = 0; i < 27; ++i) cnt[s[i] - 'A']++;
  char c = -1;
  for (int i = 0; i < 26; ++i)
    if (cnt[i] == 2) c = 'A' + i;
  assert(c != -1);
  int p1, p2;
  for (int i = 0; i < 27; ++i) {
    if (s[i] == c) {
      p1 = i;
      break;
    }
  }
  for (int i = 26; i >= 0; --i) {
    if (s[i] == c) {
      p2 = i;
      break;
    }
  }
  if (p1 + 1 == p2) {
    cout << "Impossible";
    return 0;
  }
  int d = (p2 - p1 - 1);
  int pos = d / 2;
  ans[0][pos] = c;
  int j = p1 + 1;
  for (int i = pos - 1; i >= 0; --i, ++j) ans[1][i] = s[j];
  for (int i = 0; i < pos; ++i, ++j) ans[0][i] = s[j];
  if (d % 2) ans[1][pos] = s[p2 - 1];
  j = p1 - 1;
  for (int i = pos + 1; i < 13 && j >= 0; --j, ++i) {
    ans[0][i] = s[j];
  }
  for (int i = 12; i >= pos && j >= 0; --j, --i) ans[1][i] = s[j];
  int i;
  j = p2 + 1;
  if (ans[1][pos])
    i = pos + 1;
  else
    i = pos;
  for (; i < 13 && j < 27; ++i, ++j) {
    ans[1][i] = s[j];
  }
  for (int i = 12; i >= 0 && j < 27; --i, ++j) ans[0][i] = s[j];
  for (int i = 0; i < 2; ++i) {
    for (int j = 0; j < 13; ++j) cout << ans[i][j];
    cout << '\n';
  }
  return 0;
}
