#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int lint; typedef pair IP; typedef pair LLP; typedef pairCP; #define rep(i, n) for (int i = 0; i < n; i++) #define repr(i, n) for (int i = n; i >= 0; i--) #define sort(v) sort((v).begin(), (v).end()) #define reverse(v) reverse((v).begin(), (v).end()) #define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge) #define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge) #define llower(v,hoge) *lower_bound(v.begin(), v.end(), hoge) #define lupper(v,hoge) *upper_bound(v.begin(), v.end(), hoge) int main() { string S; cin >> S; int N = 13; vectorA(N); int Z = S.size(); rep(i, Z) { A[S[i] - 'a']++; } int c0 = 0, c1 = 0, c2 = 0; rep(i, N) { if (A[i] == 0) { c0++; } if (A[i] == 1) { c1++; } if (A[i] == 2) { c2++; } } if (c0 == 1 && c1 == 11 && c2 == 1) { rep(i, N) { if (A[i] == 0) { cout << char('a' + i) << endl; } } } else if (c1 == 13) { cout << 'a' << endl; cout << 'b' << endl; cout << 'c' << endl; cout << 'd' << endl; cout << 'e' << endl; cout << 'f' << endl; cout << 'g' << endl; cout << 'h' << endl; cout << 'i' << endl; cout << 'j' << endl; cout << 'k' << endl; cout << 'l' << endl; cout << 'm' << endl; } else { cout << "Impossible" << endl; } }