#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <map>
#include <queue>
using namespace std;
string s[35];
map<string, int> Map;
queue<string> q;
int n;
int res = 0x3f3f3f3f;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i ++ )
cin >> s[i], q.push(s[i]), Map[s[i]] ++ ;
while (q.size() <= 1e5)
{
auto t = q.front();
q.pop();
for (int i = 1; i <= n; i ++ )
q.push(t + s[i]), Map[t + s[i]] ++ ;
}
for (auto it : Map)
{
if (it.second >= 3)
res = min(res, (int)it.first.size());
}
return cout << (res == 0x3f3f3f3f ? -1 : res) << endl, 0;
}