#include<iostream>
//#include<algorithm>
//#include<stdio.h>
#include<cstring>
using namespace std;
char cc;
string a[66];
int vis[66];
int cnt=-1,n;
void dfs(int wz,int ans) {
vis[wz]++;
cnt=max(cnt,ans);
int i,o,p,js;
for(i=1; i<=n<<1; i++) {
if(vis[i]<2) {
for(o=a[wz].size()-1,p=0,js=0; 1; o--,p++) {
if(a[wz][o]!=a[i][p])
break;
js++;
}
// if(js==a[wz].size()) continue;
// cout<<a[wz].size()<<" "<<a[i].size()<<endl;
// for(int i=1;i<=n<<1;i++)cout<<vis[i]<<" ";cout<<endl;
dfs(i,cnt+a[wz].size()+a[i].size()-js);
}
}
vis[wz]--;
}
int main() {
cin>>n;
int i;
for(i=1; i<=n; i++) {
cin>>a[i];
a[i+n]=a[i];
}
cin>>cc;
for(i=1; i<=n; i++)
if(a[i][0]==cc)
dfs(i,a[i].size());
cout<<cnt;
return 0;
}
P1019 单词接龙