rt
#include<bits/stdc++.h>
using namespace std;
int bz[25],n,len=0,gx[25][25];
char ch,a[25][100];
int nb(char s1[],char s2[])
{
bool flag;
for(int i=strlen(s1)-1;i>=0;i--)
{
flag=1;
int zj=i;
for(int j=0;j<strlen(s1)-i;j++)
{
if(s2[j]!=s1[zj++])
{
flag=0;
break;
}
}
if(flag)return strlen(s1)-i;
}
return 0;
}
void dfs(int s,int lenght)
{
for(int i=0;i<n;i++)
{
if(bz[i]<2)
{
if(gx[s][i]!=0&&gx[s][i]!=strlen(a[i])&&gx[s][i]!=strlen(a[s]))
{
bz[i]++;
int ls=(lenght+strlen(a[i])-gx[s][i]);
len=max(len,ls);
dfs(i,ls);
bz[i]--;
}
}
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
cin>>ch;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
gx[i][j]=nb(a[i],a[j]);
}
for(int i=0;i<n;i++)
if(a[i][0]==ch)
{
bz[i]++;
dfs(i,strlen(a[i]));
bz[i]--;
}
cout<<len;
}