#include <bits/stdc++.h>
using namespace std;
double safe_sqrt(double x) { return sqrt(max((double)0.0, x)); }
long long GI(long long& x) { return scanf("%lld", &x); }
long long cnt[333];
char res[3][33];
bool ke[300][300];
void build() {
  memset(ke, 0, sizeof ke);
  for (long long i = (1), _b = (2); i <= _b; ++i)
    for (long long j = (1), _b = (13); j <= _b; ++j) {
      for (long long di = (-1), _b = (1); di <= _b; ++di)
        for (long long dj = (-1), _b = (1); dj <= _b; ++dj)
          if (di || dj) {
            long long ii = i + di, jj = j + dj;
            if (ii > 0 && ii < 14 && jj > 0 && jj < 14) {
              ke[res[i][j]][res[ii][jj]] = 1;
            }
          }
    }
}
bool check(string s) {
  for (long long i = 0, _a = (((long long)(s).size()) - 1); i < _a; ++i)
    if (!ke[s[i]][s[i + 1]]) return false;
  return true;
}
void print() {
  for (long long i = (1), _b = (2); i <= _b; ++i) {
    for (long long j = (1), _b = (13); j <= _b; ++j) cout << res[i][j];
    cout << endl;
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout << (fixed) << setprecision(9);
  string s;
  while (cin >> s) {
    memset(cnt, 0, sizeof cnt);
    for (char c : s) ++cnt[c];
    char X;
    for (long long c = ('A'), _b = ('Z'); c <= _b; ++c)
      if (cnt[c] == 2) X = c;
    string a = "", b = "", c = "";
    long long i1 = -1, i2 = -1;
    for (long long i = 0, _a = (((long long)(s).size())); i < _a; ++i)
      if (s[i] == X) {
        if (i1 < 0)
          i1 = i;
        else
          i2 = i;
      } else {
        if (i1 < 0)
          a += s[i];
        else if (i2 < 0)
          b += s[i];
        else
          c += s[i];
      }
    long long la = ((long long)(a).size()), lb = ((long long)(b).size()),
              lc = ((long long)(c).size());
    if (lb == 0) {
      cout << "Impossible" << endl;
      continue;
    }
    string all = b + c + a;
    bool ok = false;
    for (long long j = (1), _b = (13); j <= _b; ++j) {
      res[1][j] = X;
      long long i = 0;
      for (long long jj = (j + 1), _b = (13); jj <= _b; ++jj)
        res[1][jj] = all[i++];
      for (long long jj = (13), _b = (1); jj >= _b; --jj) res[2][jj] = all[i++];
      for (long long jj = (1), _b = (j - 1); jj <= _b; ++jj)
        res[1][jj] = all[i++];
      build();
      if (check(s)) {
        print();
        ok = true;
        break;
      }
    }
    if (!ok) cout << "Impossible" << endl;
  }
}
