#include <bits/stdc++.h>
using namespace std;
char a[1500];
char ans[2][30];
int vis[30];
int tmp;
int Slove(int r, int c) {
  for (int s = 0; s < 27; s++) {
    memset(ans, ' ', sizeof(ans));
    int x = r, y = c;
    int flag = 0;
    int i = s;
    int cont = 0;
    while (1) {
      if (cont >= 27) return 1;
      if (a[i] - 'A' == tmp && flag == 1) {
        flag++;
        if (x == 1) {
          if (ans[x - 1][y] - 'A' == tmp || ans[x - 1][y + 1] - 'A' == tmp) {
            cont++;
            i++;
            i %= 27;
            continue;
          } else
            break;
        } else
          break;
      }
      if (a[i] - 'A' == tmp && flag == 0) flag++;
      ans[x][y] = a[i];
      cont++;
      i++;
      i %= 27;
      if (x == 0) {
        y++;
        if (y == 13) y = 12, x++;
      } else {
        y--;
        if (y < 0) y = 0, x--;
      }
    }
  }
  return 0;
}
int main() {
  while (~scanf("%s", a)) {
    memset(vis, 0, sizeof(vis));
    int n = strlen(a);
    for (int i = 0; i < n; i++) {
      vis[a[i] - 'A']++;
    }
    for (int i = 0; i < 26; i++) {
      if (vis[i] == 2) tmp = i;
    }
    int flag = 0;
    int flag2 = 0;
    for (int i = 0; i < n - 1; i++) {
      if (a[i] == a[i + 1]) {
        flag2 = 1;
        printf("Impossible\n");
        break;
      }
    }
    if (flag2 == 1) continue;
    for (int c = 0; c < 13; c++) {
      int tt = Slove(0, c);
      if (tt == 1) {
        flag = 1;
        for (int i = 0; i < 2; i++) {
          for (int j = 0; j < 13; j++) {
            printf("%c", ans[i][j]);
          }
          printf("\n");
        }
        break;
      }
    }
    if (flag == 0) {
      printf("Impossible\n");
    }
  }
}
