#include <bits/stdc++.h>
using namespace std;
const int sz = 2e5 + 3;
vector<vector<char> > grid;
bool validate(string a) {
  int r, c;
  for (int j = 0; j < 2; j++)
    for (int k = 0; k < 13; k++)
      if (grid[j][k] == a[0]) r = j, c = k;
  for (int i = 1; i < a.size(); i++) {
    bool flag = 0;
    if (r == 0) {
      if (c < 12 && grid[r][c + 1] == a[i])
        c++, flag = 1;
      else if (c > 0 && grid[r][c - 1] == a[i])
        c--, flag = 1;
      else if (c < 12 && grid[r + 1][c + 1] == a[i])
        r++, c++, flag = 1;
      else if (c > 0 && grid[r + 1][c - 1] == a[i])
        r++, c--, flag = 1;
      else if (grid[r + 1][c] == a[i])
        r++, flag = 1;
    } else {
      if (c < 12 && grid[r][c + 1] == a[i])
        c++, flag = 1;
      else if (c > 0 && grid[r][c - 1] == a[i])
        c--, flag = 1;
      else if (c < 12 && grid[r - 1][c + 1] == a[i])
        r--, c++, flag = 1;
      else if (c > 0 && grid[r - 1][c - 1] == a[i])
        r--, c--, flag = 1;
      else if (grid[r - 1][c] == a[i])
        r--, flag = 1;
    }
    if (!flag) return 0;
  }
  return 1;
}
void rotate() {
  vector<char> all;
  for (int i = 0; i < 13; i++) all.push_back(grid[0][i]);
  for (int i = 12; i >= 0; i--) all.push_back(grid[1][i]);
  char last = all.back();
  all.pop_back();
  vector<char> temp;
  temp.push_back(last);
  for (int i = 0; i < all.size(); i++) temp.push_back(all[i]);
  for (int i = 0; i < 13; i++) grid[0][i] = temp[i];
  for (int i = 12, j = 13; i >= 0; i--, j++) grid[1][i] = temp[j];
}
int main() {
  string x;
  cin >> x;
  for (int i = 0; i + 1 < x.size(); i++)
    if (x[i] == x[i + 1]) {
      cout << "Impossible";
      return 0;
    }
  int r;
  set<char> s;
  for (int i = 0; i < x.size(); i++) {
    int before = s.size();
    s.insert(x[i]);
    if (before == s.size()) {
      r = i;
      break;
    }
  }
  string temp = x;
  temp.erase(temp.begin() + r);
  grid.resize(2);
  grid[0].resize(13);
  grid[1].resize(13);
  for (int i = 0; i < 13; i++) grid[0][i] = temp[i];
  for (int i = 0, j = 13; j < 26; j++, i++) grid[1][12 - i] = temp[j];
  for (int i = 0; i < 50; i++) {
    if (validate(x)) {
      for (int o = 0; o < 2; o++) {
        for (int j = 0; j < 13; j++) cout << grid[o][j];
        cout << endl;
      }
      break;
    }
    rotate();
  }
  return 0;
}
