#include<string.h>
#include<iostream>
using namespace std;
const int N=50,M=10001;
char s[N][M];
char ch;
int flag[N]={0};
int n;
int _sum=0;
int ans=0;
int f=0;
bool check(int x,int y){
int i,j;
int lx=strlen(s[x]);
int ly=strlen(s[y]);
f=0;
i=0;
j=0;
for(int k=1;k<min(lx,ly);k++){
int f1=1;
for(i=lx-k,j=0;i<lx,j<k;i++,j++){
if(s[x][i]!=s[y][j]){
f1=0;
break;
}
}
if(f1==1){
f=k;
}
}
if(f==0) return false;
if((f==lx&&lx<ly)||(f==ly&&ly<lx)) return false;
_sum=ly-f;
return true;
}
void DFS(int t,int k,int sum){
if(sum>ans){
ans=sum;
}
for(int i=1;i<=n;i++){
if(flag[i]<2&&check(k,i)){
flag[i]++;
DFS(t+1,i,sum+_sum);
flag[i]--;
}
}
return;
}
int main(){
int i;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%s\n",s[i]);
}
scanf("%c",&ch);
for(i=1;i<=n;i++)
if(s[i][0]==ch){
flag[i]++;
DFS(0,i,strlen(s[i]));
flag[i]--;
}
printf("%d",ans);
//while(1);
return 0;
}
/*
3
cheat
touch
at
a
*/
#include<cmath>
#include<cstring>
#include<iomanip>