#include<bits/stdc++.h>
#include<string>
using namespace std;
struct node{
int len;
string a;
};
int n;
bool vis[45];
node a[45];
int boo(string a,string b){
int i1=a.size()-1,i2=0;
char x=a[i1];
for(i2;i2<min(a.size(),b.size());i2++){
if(x==b[i2]){
int t1=i1,t2=i2;
while(t2>0){
t1--,t2--;
if(a[t1]!=b[t2]){
break;
}
}
if(!t2){
return i2+1;
}
}
}
return 0;
}
int dfs(int x){
vis[x]=1;
int ans=a[x].len;
for(int i=0;i<2*n;i++){
if(vis[i]) continue;
int fl=boo(a[x].a,a[i].a);
if(fl==0 or fl==a[x].len or fl==a[i].len) continue;
ans=max(ans,a[x].len-fl+dfs(i));
}
vis[x]=0;
return ans;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
string t;
cin>>t;
a[i].len=t.size(),
a[i].a=t;
a[i+n].len=t.size(),
a[i+n].a=t;
}
char f;
int maxx=0;
cin>>f;
for(int i=0;i<n;i++){
if(f==a[i].a[0]){
maxx=max(maxx,dfs(i));
}
}
printf("%d",maxx);
return 0;
}
/*
*/
四,五点wa了