#include <iostream>
#include <algorithm>

using namespace std;

void solve() {
	int n;
	cin >> n;

	vector<string> s(n+1);

	for (int i = 1; i <= n; ++i) {
		cin >> s[i];
	}

	string best;

	for (int i = 1; i <= n; ++i) {
		vector<bool> 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();
	}
}