#include <bits/stdc++.h>
inline char RC() {
  char cr;
  while ((cr = getchar()) < 'A' && cr > 'Z')
    ;
  return cr;
}
int rd[33];
int prd[33];
int times[33];
int a[33];
int mp[2][33];
void getnext(int& x, int& y) {
  if (x == 1) {
    if (y > 1)
      --y;
    else
      x = 2, y = 1;
  } else {
    if (y < 13)
      y++;
    else
      x = 1, y = 13;
  }
}
int main() {
  int pos1, pos2;
  for (int i = 0; i < 27; i++) {
    rd[i] = RC() - 'A';
    times[rd[i]]++;
    if (times[rd[i]] == 2)
      pos1 = prd[rd[i]], pos2 = i;
    else
      prd[rd[i]] = i;
  }
  if (pos1 + 1 == pos2) {
    puts("Impossible");
    return 0;
  }
  int x = 1, y = (pos2 - pos1 - 1) / 2 + 1;
  mp[x][y] = rd[pos1];
  for (int cnt = 1, pos = pos1; cnt <= 27; cnt++, pos = (pos + 1) % 27) {
    if (rd[pos] == rd[pos1]) continue;
    getnext(x, y);
    mp[x][y] = rd[pos];
  }
  for (int i = 1; i <= 2; i++) {
    for (int j = 1; j <= 13; j++) printf("%c", mp[i][j] + 'A');
    printf("\n");
  }
}
