#include<bits/stdc++.h>
using namespace std;
int n;
string a[21];
char start;
int ans=0;
int num[21];
string a0;
string exp(string x,string y){
if(x.find(y)!=string::npos) return "-0";
for(int i=1;i<=x.length();i++){
if(y.substr(0,i)==x.substr(x.length()-i)){
return x+y.substr(i);
}
}
return "-0";
}
void dfs(string crt){
bool ck=0;
for(int i=0;i<n;i++){
if(num[i]>0){
string str=exp(crt,a[i]);
if(str!="-0"){
num[i]--;
ck=1;
dfs(str);
num[i]++;
}
}
}
if(!ck){
int la=crt.length(),lb=a0.length();
if(la>lb) a0=crt;
}
}
void fill(){
for(int i=0;i<n;i++) num[i]=2;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
cin>>start;
for(int i=0;i<n;i++){
if(a[i][0]==start){
fill();
num[i]--;
dfs(a[i]);
num[i]++;
int len=a0.length();
ans=max(ans,len);
}
}
cout<<ans;
return 0;
}