#include<bits/stdc++.h>
using namespace std;
int n,ans=0,f[1000]={0};
string arr[10000];
char a;
int find(string a,string b){
for(int i=a.size()-1;i>0;i--){
if(a[i]==b[0]){
int l=i;
for(int j=0;j<b.size();j++){
if(a[l]=b[j]) l++;
else break;
if(l=a.size()) return l-i;
}
}
}
return 0;
}
void dfs(int maxn,int q){
ans=max(maxn,ans);
for(int i=0;i<n;i++){
int x=find(arr[q],arr[i]);
if(f[i]<2 && x){
f[i]+=1;
maxn=maxn+arr[i].size()-x;
dfs(maxn,i);
f[i]-=1;
maxn=maxn-arr[i].size()+x;
}
}
return;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
}
cin>>a;
for(int i=0;i<n;i++){
if(arr[i][0]==a){
f[i]+=1;
dfs(arr[i].size(),i);
f[i]-=1;
}
}
cout<<ans;
}
样例都不知为何没过