#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 #define stop exit(0) #define nc -1 #define eps 1e-10 #define inf 1000000000 #define mod 1000000007 #define mp make_pair #define fill(array,value) memset(array,value,sizeof(array)) #define f(i,beg,end) for(int i=beg; i<=end; i++) #define F(i,beg,end) for(int i=beg; i>=end; i--) #define Max(a,b) ( (a>b)?a:b ) #define Min(a,b) ( (a s; void init() { cin >> n; cin.ignore(); f(i,1,n) { cin >> a[i]; s.insert(a[i]); b[i] = a[i]; sort(b[i].begin(),b[i].end()); } f(i,2,n) if (b[i] != b[i-1]) { cout << -1 << endl; return; } string ans = b[1]; bool ok = true; f(i,1,n) if (a[i]==ans) { ok = false; } if (ok) { cout << ans << endl; return; } while (true) { next_permutation(ans.begin(),ans.end()); if (s.find(ans)==s.end()) { cout << ans << endl; return; } } } void solve() { } int main() { // input("test.txt"); input("anagrams.in"); output("anagrams.out"); int numberOfTests = 1; // cin >> numberOfTests; f(i,1,numberOfTests) { init(); solve(); } return 0; }