#include <bits/stdc++.h>
int main() {
  std::string s;
  std::getline(std::cin, s);
  int cnt[26] = {};
  for (int i = 0; i != 27; ++i) {
    ++cnt[s[i] - 'A'];
    if (i && s[i] == s[i - 1]) {
      std::cout << "Impossible\n";
      return 0;
    }
  }
  for (int i = 0; i != 26; ++i) {
    if (cnt[i] != 2) continue;
    const std::size_t p1 = s.find(static_cast<char>(i + 'A'));
    const std::size_t p2 = s.find(static_cast<char>(i + 'A'), p1 + 1);
    const std::size_t dist = p2 - p1;
    const std::size_t llen = dist / 2;
    const std::size_t hlen = dist - llen;
    std::string str(26, 0);
    std::copy(s.begin() + p1, s.begin() + p2, str.begin() + 13 - hlen);
    for (std::size_t j = (p2 + 1) % 27, p = 13 + llen; j != p1;
         j = (j + 1) % 27, p = (p + 1) % 26)
      str[p] = s[j];
    std::reverse(str.begin() + 13, str.end());
    std::cout << str.substr(0, 13) << "\n" << str.substr(13, 13) << "\n";
  }
  return 0;
}
