#include <bits/stdc++.h>

#define pb push_back
#define f first
#define s second
#define pii pair<int, int>
#define mp make_pair
 
using namespace std;
 
const string name = "B",
             in_file = name + ".in",
             out_file = name + ".out";
 
ifstream fin(in_file);
ofstream fout(out_file);
 
const int MAX = 101;

int n;
int dp[MAX];
string word[MAX];

bool can_do(int index) {
	memset(dp, 0, sizeof(dp));
	for (int i = 0; i < (int)word[index].size(); i++) {
		for (int j = 1; j <= n; j++) {
			if (j == index) {
				continue;
			}

			if (i + 1 >= (int)word[j].size() && (!(i - word[j].size() + 1) || dp[i - word[j].size()])) {
				bool works = true;
				for (int k1 = 0, k2 = i - word[j].size() + 1; k1 < (int)word[j].size(); k1++, k2++) {
					if (word[j][k1] != word[index][k2]) {
						works = false;
						break;
					}
				}

				if (works) {
					dp[i] = 1;
				}
			} 
		}
	}
	return dp[word[index].size() - 1];
}

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

	int sol = 0,
		index_sol = -1;
	for (int i = 1; i <= n; i++) {
		if (can_do(i)) {
			if (sol < (int)word[i].size()) {
				sol = (int)word[i].size();
				index_sol = i;
			}
		}
	}
	cout << (index_sol == -1 ? "-1": word[index_sol]);
	return 0;
}