#include <iostream>
using namespace std;
#define max(a,b) a>b?a:b
string s[20];
int f[1<<16][20];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i],f[1<<(i-1)][i]=s[i].size();
f[0][0]=0;
for(int i=1;i<(1<<n);i++)
{
for(int j=0;j<=n;j++)
{
if(!((1<<(j-1))&i))continue;
for(int k=0;k<=n;k++)
{
if(j==k)continue;
if(!((1<<(k-1))&i))continue;
if(s[j][0]!=s[k][s[k].size()-1])continue;
f[i][j]=max(f[i][j],f[(1<<(j-1))^i][k]+s[j].size());
}
}
}
int ans=0;
for(int i=0;i<(1<<n)-1;i++)
for(int j=1;j<=n;j++)
{
ans=max(ans,f[i][j]);
}
cout<<ans<<endl;
return 0;
}