#include<bits/stdc++.h>
using namespace std;
char c,s[25][1000],ss[10000];
int n,len,lentmp[50][3],top,cnt[25],ans;
bool judge(char a[],char b[],int l1,int l2,int index)
{
if(l1==1&&b[0]==c)
{
lentmp[index][++cnt[index]]=1;
return true;
}
int x=min(l1,l2);
for(int i=1;i<x;i++)
{
bool flag=true;
for(int j=1;j<=i;j++)
if(a[l1-i-1+j]!=b[j-1])
{
flag=false;
break;
}
if(flag)
{
lentmp[index][++cnt[index]]=i;
return true;
}
}
return false;
}
void con(char a[],char b[],int &lena,int lenb,int index)
{
if(lena==1)
{
strcpy(a,b);
lena=lenb;
return;
}
for(int i=lena;i<=lena+lenb-lentmp[index][cnt[index]]-1;i++)
a[i]=b[i-lena+lentmp[index][cnt[index]]];
lena=lena+lenb-lentmp[index][cnt[index]];
ans=max(lena,ans);
}
void search()
{
for(int i=1;i<=n;i++)
if(cnt[i]<2&&judge(s[0],s[i],len,strlen(s[i]),i))
{
con(s[0],s[i],len,strlen(s[i]),i);
search();
len=len+lentmp[i][cnt[i]]-strlen(s[i]);
cnt[i]--;
}
}
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)
cin>>s[i];
cin>>c;
s[0][0]=c;
len=1;
search();
cout<<ans<<endl;
return 0;
}