#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int n; set s; int main(){ cin >> n; for (int i = 0; i < n; i++){ string k; cin >> k; s.insert(k); } string t = "inabameguru"; vector a; vector b; a.clear(); b.clear(); for (int i = 0; i < t.size(); i++){ if (i % 2){ b.push_back(t[i]); } else{ a.push_back(t[i]); } } sort(a.begin(), a.end()); sort(b.begin(), b.end()); do{ sort(b.begin(), b.end()); do{ string k; k.clear(); bool f = false; for (int i = 0; i < a.size() + b.size(); i++){ if (i % 2){ k.push_back(b[i / 2]); } else{ k.push_back(a[i / 2]); } } if (s.count(k) == 0){ cout << k << endl; return 0; } k.clear(); for (int i = 0; i < a.size() + b.size(); i++){ //i,i+1=a k.clear(); int ind = 0; int indd = 0; bool flag = false; if (i != 0){ flag = true; } for (int j = 0; j < a.size() + b.size(); j++){ if (flag){ k.push_back(b[indd]); indd++; } else{ k.push_back(a[ind]); ind++; } if (j == i - 1){ flag = false; continue; } if (j == i){ flag = false; continue; } flag ^= 1; } if (s.count(k)){ continue; } if (find(a.begin(), a.end(), k.back()) == a.end()){ continue; } cout << k << endl; return 0; } } while (next_permutation(b.begin(), b.end())); } while (next_permutation(a.begin(), a.end())); puts("NO"); return 0; }