#include <bits/stdc++.h>
using namespace std;
string str;
int cnt[28], pos_s, pos_e;
char rp;
char mp[2][13];
pair<int, int> next_p(pair<int, int> pos, int dir) {
  if (pos.first == 0) {
    if ((pos.second > 0 || dir == 1) && (pos.second < 12 || dir == -1))
      return pair<int, int>(0, pos.second + dir);
    else if (pos.second == 0 && dir == -1)
      return pair<int, int>(1, 0);
    else if (pos.second == 12 && dir == 1)
      return pair<int, int>(1, 12);
  } else {
    if ((pos.second > 0 || dir == -1) && (pos.second < 12 || dir == 1))
      return pair<int, int>(1, pos.second - dir);
    else if (pos.second == 0 && dir == 1)
      return pair<int, int>(0, 0);
    else if (pos.second == 12 && dir == -1)
      return pair<int, int>(0, 12);
  }
  return pair<int, int>(-1, -1);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  memset(cnt, 0, sizeof cnt);
  memset(mp, 0, sizeof mp);
  cin >> str;
  for (int i = 0; i < 27; ++i) {
    int new_c = ++cnt[str[i] - 'A'];
    if (new_c == 2) {
      rp = str[i];
      pos_e = i;
    }
  }
  for (int i = 0; i < 27; ++i)
    if (str[i] == rp) {
      pos_s = i;
      break;
    }
  int diff = pos_e - pos_s - 1;
  if (diff == 0) {
    cout << "Impossible\n";
    return 0;
  }
  int start_p = 12 - diff / 2;
  int idx = pos_s;
  pair<int, int> pos(0, start_p - 1);
  int dir = 1;
  while (idx != pos_e) {
    pos = next_p(pos, dir);
    mp[pos.first][pos.second] = str[idx];
    idx++;
  }
  idx = pos_s - 1;
  pos.first = 0;
  pos.second = start_p;
  dir = -1;
  while (idx >= 0) {
    pos = next_p(pos, dir);
    mp[pos.first][pos.second] = str[idx];
    idx--;
  }
  pos.first = 1;
  dir = 1;
  idx = pos_e + 1;
  if (diff % 2 == 0)
    pos.second = start_p + 1;
  else
    pos.second = start_p;
  while (idx < 27) {
    pos = next_p(pos, dir);
    mp[pos.first][pos.second] = str[idx];
    idx++;
  }
  for (int i = 0; i < 2; ++i) {
    for (int j = 0; j < 13; ++j) {
      cout << mp[i][j];
    }
    cout << endl;
  }
  return 0;
}
