#include using namespace std; int main() { // 1. 入力情報取得. string S; cin >> S; // 2. Sに1文字加えて, 問題文の条件を満たすように出来るか? string str = "abcdefghijklm"; // 2-1. 問題文の条件を満たす文字列の配列を作成. string judgment[13]; for(int i = 0; i < 13; i++){ judgment[i] = str + str[i]; sort(judgment[i].begin(), judgment[i].end()); } // 2-2. 入力文字列 S に 1文字加えて, 2-1. の 配列 と 照合. int counter = 0; for(int i = 0; i < 13; i++){ char c = str[i]; // 2-1. 入力文字列 S に 1文字加え, 昇順sort. string X = S + c; sort(X.begin(), X.end()); // 2-2. 比較対象文字列 の 配列 と 照合. for(int j = 0; j < 13; j++){ // 文字列X, Y を比較し, 等しければ, 追加した文字(c)を出力. if(X == judgment[j]){ cout << c << endl; // cout << "X=" << X << " judgment=" << judgment[j] << " c=" << c << endl; // ex. // [入力値] // abcdfghijklmm // -> X=abcdefghijklmm judgment=abcdefghijklmm c=e のように照合される. counter++; break; } } } // 3. 終了. // if(counter == 0) cout << -1 << endl; // -> Sample_2.txt 等 の WAになったので修正. if(counter == 0) cout << "Impossible" << endl; return 0; }