#include <bits/stdc++.h>
using namespace std;
int n,vis[100001],ans,maxn,l[100001],p;
string s[10001];
char ch;
int find(int x,int y){
int lx=l[x],ly=l[y];
for(int i=lx-1;i>=1;i--){
if(s[x][i]==s[y][0]){
int k=0;
for(int j=i+1;j<=lx-1;j++,k++){
if(s[x][j] != s[y][k]) return 0;
}
return ly - (k + 1);
}
}
return 0;
}
void dfs(int x){
for(int i = 1; i <= n; i++){
if(vis[i]<2&&find(x,i)){
vis[i]++,ans+=find(x, i);
dfs(i);
vis[i]--,ans-=find(x, i);
}
}
if(ans>p) p=ans;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
l[i]=s[i].length();
}
cin>>ch;
for(int i=1;i<=n;i++){
if(s[i][0]==ch){
ans=l[i],vis[i]++;
dfs(i);
vis[i]--;
if(p>maxn) maxn=p;
}
}
cout<<maxn<<endl;
return 0;
}