#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-8;
const int maxn = 112345;
int vis[26];
char str[33];
char ans[2][33];
int main() {
  int a, b;
  scanf("%s", str);
  memset(vis, -1, sizeof(vis));
  for (int i = 0; str[i]; ++i) {
    if (vis[str[i] - 'A'] != -1) {
      a = vis[str[i] - 'A'];
      b = i;
      break;
    }
    vis[str[i] - 'A'] = i;
  }
  int len = 27;
  int la, lb, lc;
  la = a;
  lb = b - a - 1;
  lc = len - 1 - b;
  if (lb == 0) {
    puts("Impossible");
    return 0;
  }
  ans[0][13] = ans[1][13] = 0;
  if (la + lb / 2 + 1 <= 13) {
    int pos = 13 - (lb / 2 + 1 + la);
    for (int i = 0; i <= a; ++i) ans[0][pos++] = str[i];
    for (int i = 1; i <= lb / 2; ++i) ans[0][pos++] = str[a + i];
    pos = 12;
    for (int i = lb / 2 + 1; i <= lb; ++i) ans[1][pos--] = str[a + i];
    b++;
    while (pos >= 0) ans[1][pos--] = str[b++];
    pos = 0;
    while (b < len) ans[0][pos++] = str[b++];
    printf("%s\n%s\n", ans[0], ans[1]);
  } else {
    int pos = 13 - (lb / 2 + 1);
    pos = la - pos - 1;
    int p = 0;
    while (pos >= 0) ans[1][pos--] = str[p++];
    pos = 0;
    while (p <= a) ans[0][pos++] = str[p++];
    for (int i = 1; i <= lb / 2; ++i) ans[0][pos++] = str[a + i];
    pos = 12;
    for (int i = lb / 2 + 1; i <= lb; ++i) ans[1][pos--] = str[a + i];
    b++;
    while (b < len) ans[1][pos--] = str[b++];
    printf("%s\n%s\n", ans[0], ans[1]);
  }
  return 0;
}
