#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 25;
int g[N][N];
string words[N];
int used[N];
int n,res=0;
char start;
void dfs(string s,int u)
{
res=max(res,(int)s.size());
used[u]++;
for(int i=0;i<n;i++)
if(g[u][i]&&used[i]<2)
dfs(s+words[i].substr(g[u][i]),i);
used[u]--;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)cin>>words[i];
cin>>start;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
string a=words[i],b=words[j];
for(int k=1;k<min(a.size(),b.size());k++)
if(a.substr(a.size()-k,k)==b.substr(0,k))
{
g[i][j]=k;
break;
}
}
for(int i=0;i<n;i++)
if(words[i][0]==start)
dfs(words[i],i);
cout<<res<<endl;
}