#include #include using namespace std; void solve() { int n; cin >> n; vector s(n+1); for (int i = 1; i <= n; ++i) { cin >> s[i]; } string best; for (int i = 1; i <= n; ++i) { vector can(s[i].length() + 1); can[0] = true; for (int j = 0; j < s[i].length(); ++j) { if (!can[j]) continue; for (int k = 1; k <= n; ++k) { if (k == i) continue; if (j + s[k].length() <= s[i].length() && s[i].substr(j, s[k].length()) == s[k]) { can[j + s[k].length()] = true; } } } if (can[s[i].length()] && best.length() < s[i].length()) { best = s[i]; } } if (best.length() == 0) { cout << -1 << "\n"; } else cout << best << "\n"; } int main() { int tests = 1; for (;tests; --tests) { solve(); } }