#include <bits/stdc++.h>
using namespace std;
char str[40], ans[2][40], p[40];
int pre[40], sum[40];
int main() {
  scanf("%s", str);
  int L = 0, R = 0;
  bool mark = true;
  memset(pre, -1, sizeof(pre));
  for (int i = 0; i < 27; i++) {
    int a = str[i] - 'A';
    sum[a]++;
    if (pre[a] == -1)
      pre[a] = i;
    else {
      L = pre[a];
      R = i;
      if (R - 1 == L) {
        mark = false;
      }
    }
  }
  int k = 0;
  for (int i = 0; i < 26; i++) {
    if (sum[i] == 0 || sum[i] > 2) mark = false;
    if (sum[i] == 2) k++;
  }
  if (k != 1 || !mark) {
    printf("Impossible\n");
    return 0;
  }
  R = 26 - R;
  int cnt = 0;
  if (L > R) {
    int o = 0;
    for (int i = 26; i >= 0; i--) {
      p[o++] = str[i];
    }
    for (int i = 0; i < 27; i++) str[i] = p[i];
    swap(L, R);
  }
  int num = R - L;
  if (num & 1) {
    num = (num / 2) + 1;
    int i;
    for (i = num;; i++) {
      if (cnt == L) break;
      ans[0][i] = str[cnt++];
    }
    int flag = i - 1;
    ans[1][i - 1] = str[cnt++];
    for (; i < 13; i++) ans[0][i] = str[cnt++];
    for (int i = 12; i > flag; i--) {
      ans[1][i] = str[cnt++];
    }
    cnt++;
    for (int i = flag - 1; i >= 0; i--) ans[1][i] = str[cnt++];
    if (num) {
      for (int i = 0; i < num; i++) ans[0][i] = str[cnt++];
    }
  } else {
    num = num / 2;
    int i;
    for (i = num;; i++) {
      if (cnt == L) break;
      ans[0][i] = str[cnt++];
    }
    int flag = i;
    ans[1][i] = str[cnt++];
    for (; i < 13; i++) ans[0][i] = str[cnt++];
    for (int i = 12; i > flag; i--) {
      ans[1][i] = str[cnt++];
    }
    cnt++;
    for (int i = flag - 1; i >= 0; i--) ans[1][i] = str[cnt++];
    if (num) {
      for (int i = 0; i < num; i++) ans[0][i] = str[cnt++];
    }
  }
  if (L == 0 && R == 0) {
    cnt = 0;
    for (int i = 0; i < 13; i++) ans[0][i] = str[cnt++];
    for (int i = 12; i >= 0; i--) ans[1][i] = str[cnt++];
  }
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 13; j++) printf("%c", ans[i][j]);
    printf("\n");
  }
}
