#include <bits/stdc++.h>
char seq[28];
int gapc(int* p1, int* p2) {
  int check[26] = {0};
  int pos[26] = {0};
  for (int i = 0; i < 27; i++) {
    if (check[seq[i] - 65] > 0) {
      *p1 = pos[seq[i] - 65];
      *p2 = i;
      return *p2 - *p1 - 1;
    } else {
      check[seq[i] - 65]++;
      pos[seq[i] - 65] = i;
    }
  }
}
int main() {
  int p1, p2, gap, ans[2][13];
  scanf("%s", seq);
  gap = gapc(&p1, &p2);
  if (gap == 0) {
    printf("IMPOSSIBLE");
    return 0;
  }
  int i = 0, k = 0;
  if ((12 - gap / 2 - p1) >= 0) {
    for (i = 12 - gap / 2 - p1; i < 13; k++) {
      if (k != p2) {
        ans[0][i] = seq[k];
        i++;
      }
    }
    for (i = 12; i >= 0; k++) {
      if (k != p2) {
        ans[1][i] = seq[k];
        i--;
      }
    }
    for (i = 0; i < (12 - gap / 2 - p1); k++) {
      if (k != p2) {
        ans[0][i] = seq[k];
        i++;
      }
    }
  } else {
    for (i = gap / 2 + p1 - 13; i >= 0; k++) {
      if (k != p2) {
        ans[1][i] = seq[k];
        i--;
      }
    }
    for (i = 0; i < 13; k++) {
      if (k != p2) {
        ans[0][i] = seq[k];
        i++;
      }
    }
    for (i = 12; i > (gap / 2 + p1 - 13); k++) {
      if (k != p2) {
        ans[1][i] = seq[k];
        i--;
      }
    }
  }
  for (i = 0; i < 2; i++) {
    for (int j = 0; j < 13; j++) {
      printf("%c", ans[i][j]);
    }
    printf("\n");
  }
  return 0;
}
