#include<bits/stdc++.h>
using namespace std;
int n,ans,vis[25],mt[25][25];
char c;
string s[25];
int far(int x, int y)
{
int cnt = 0,ans = 0;
for(int i = 0;i < min(s[x].size(),s[y].size());i++)
{
if(s[x][s[x].size()-1] == s[y][i])
{
for(int k = 0;k <= i;k++)
{
if(s[x][s[x].size()-k-1] != s[y][i-k]) break;
cnt++;
}
}
ans = max(cnt,ans);
cnt = 0;
}
return ans;
}
int len;
void dfs(int l)
{
for(int i = 1;i <= n;i++)
{
if(vis[i] < 2 && mt[l][i] && mt[l][i] != s[l].size() && mt[l][i] != s[i].size())
{
vis[i]++;
len += s[i].size()-mt[l][i];
dfs(i);
len -= s[i].size()-mt[l][i];
vis[i]--;
}
}
ans = max(ans,len);
}
int main()
{
cin>>n;
for(int i = 1;i <= n;i++)
{
cin>>s[i];
}
cin>>c;
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= n;j++)
{
mt[i][j] = far(i,j);
}
}
for(int i = 1;i <= n;i++)
{
if(s[i][0] == c)
{
dfs(i);
}
}
cout<<ans;
}
救(嘶吼)