#include<bits/stdc++.h>
using namespace std;
int n,vis[21],l,maxl;
string a[21],one,s;
void dfs(){
bool f=false;
for(int i=1;i<=n;i++){
if(vis[i]!=2){
f=true;
}
}
if(f==false){
maxl=max(maxl,l);
return;
}
for(int i=1;i<=n;i++){
if(vis[i]!=2){
for(int j=1;j<a[i].length();j++){
if(s.substr(l-j)==a[i].substr(0,j)){
s=s+a[i].substr(j);
l=s.length();
vis[i]++;
dfs();
vis[i]--;
break;
}
}
}
}
maxl=max(maxl,l);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>one;
for(int i=1;i<=n;i++){
if(a[i].substr(0,1)==one){
s=a[i];
l=s.length();
dfs();
}
}
cout<<maxl;
return 0;
}
有点乱……