#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,ans=INT_MIN;
int lz;
string str[30];
int c[30];
int visit[30];
int t[30][30];
void work(int l,int r){
string a=str[l],b=str[r];
for(int i=c[l]-1;i>=0;i--){
bool flag=true;
int ky=0;
for(int j=i;j<c[l];j++){
if(a[j]!=b[ky++]){
flag=false;
break;
}
}
if(flag){
t[l][r]=c[l]-i;
return ;
}
}
return ;
}
void dfs(int r){
bool flag=false;
for(int i=1;i<=n;i++){
if(visit[i]>=2||t[r][i]==0||t[r][i]==c[r]||t[r][i]==c[i]) continue;
visit[i]++;
lz+=c[i]-t[r][i];
flag=true;
dfs(i);
visit[i]--;
lz-=c[i]-t[r][i];
}
if(!flag) ans=max(ans,lz);
return ;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>str[i];
c[i]=str[i].size();
}
char x;
cin>>x;
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
work(i,j);
}
}
for(int i=1;i<=n;i++){
if(str[i][0]!=x) continue;
lz=c[i];
visit[i]++;
dfs(i);
visit[i]=0;
}
printf("%d",ans);
return 0;
}