#include <iostream> #include <fstream> #include <string> #include <algorithm> using namespace std; ifstream fin("date.in"); ofstream fout("date.out"); int n; bool mat[105][105]; string m[105], cop; bool cmp(string a, string b) { return a.size() > b.size(); } void afis() { for(int i =1 ;i<=n;i++){ for(int j=0;j<m[i].size();j++) cout<<mat[i][j];cout<<endl;} } int main() { cin >> n; for(int i = 1; i <= n; i++) { cin >> m[i]; } sort(m + 1, m + n + 1, cmp); string a = "ABCDEFG"; // cout << a.erase(2,3); for(int i = 1; i <= n; i++) { for(int j = i + 1; j <= n; j++) { int poz = m[i].find(m[j]); string cop = m[i]; if(poz < 105 && poz >= 0) { //cout << m[i] << ' '<<m[j]<<' '<<poz<<endl; int lastpoz = 0; while(poz < 105 && poz >= 0) { for(int k = poz; k < poz + m[j].size();k++) { mat[i][k + lastpoz] = 1; } lastpoz += m[j].size(); cop = cop.erase(poz,m[j].size()); //cout << " "<<cop<<' '<<m[j].size() <<' '<<m[j]<<endl; poz = cop.find(m[j]); } bool ok = 1; for(int k = 0; k < m[i].size();k++) if(mat[i][k] == 0) { ok = 0; k = m[i].size()+5; } if(ok == 1) { cout << m[i]; return 0; } } } } cout << "-1"; return 0; }