#include <bits/stdc++.h>
using namespace std;
char b[2][13];
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
bool in(int x, int y) { return 0 <= x && x < 13 && 0 <= y && y < 2; }
bool adj(int x1, int y1, int x2, int y2) {
  if (x1 == x2 && y1 == y2) return false;
  return abs(x1 - x2) <= 1 && abs(y1 - y2) <= 1;
}
vector<int> p[26];
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  string s;
  cin >> s;
  int c = -1, d = -1;
  for (int i = 0; i < 27; i++) {
    int k = s[i] - 'A';
    p[k].push_back(i);
    if (p[k].size() == 2) {
      c = k;
      d = abs(p[c][0] - p[c][1]);
      if (d == 1) {
        cout << "Impossible" << endl;
        return 0;
      }
    }
  }
  map<int, pair<int, int> > pos;
  int cnt = 0;
  for (int i = 12; i >= 0; i--) {
    pos[cnt++] = pair<int, int>(0, i);
  }
  for (int i = 0; i < 13; i++) {
    pos[cnt++] = pair<int, int>(1, i);
  }
  int n = p[c][0], t = 12 - (d - 1) / 2;
  for (int i = 0; i < 27; i++) {
    int x = pos[t].second, y = pos[t].first;
    if (p[c][1] != n) {
      b[y][x] = s[n];
      t = (t + 1) % 26;
    }
    n = (n + 1) % 27;
  }
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 13; j++) {
      cout << b[i][j];
    }
    cout << endl;
  }
}
