#include<bits/stdc++.h>
#define N 30
using namespace std;
struct node{
string s;
int len;
}a[N];
int n,f[N],ans=0;
int dfs(int x){
if(f[x]!=-1) return f[x];
int ret=0;
for(int i=1;i<=n;i++){
if(i==x)continue;
if(a[x].s[a[x].len-1]==a[i].s[0]){
f[i]=dfs(i);
ret=max(ret,f[i]);
}
}
return ret+a[x].len;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>a[i].s;
a[i].len=a[i].s.size();
}
memset(f,-1,sizeof(f));
for(int i=1;i<=n;i++){
f[i]=dfs(i);
ans=max(ans,f[i]);
}
printf("%d",ans);
}