#include<bits/stdc++.h>
using namespace std;
int n,ans;
char c;
string s[25];
int v[25];
int check(string a,string b){
if(a.size()==1) if(b[0]==a[0]) return 0; else return -1;
else if(b.find(a)!=-1) return 0;
int tot=-1;
for(int i=0;i<a.size();i++){
int f=b.find(a.substr(i));
if(f!=-1&&f==0)
tot=i;
}
return tot;
}
string add(int tot,string a,string b){
return a+b.substr(tot+1);
}
void loong(string str){
ans=max(ans,(int)str.size());
for(int i=1;i<=n;i++){
if(v[i]>=1) continue;
int x=check(str,s[i]);
if(x!=-1){
v[i]++;
loong(add(x,str,s[i]));
v[i]--;
}
}
}
int main(){
cin>>n;
memset(v,-1,sizeof(v));
v[0]=0;
for(int i=1;i<=n;i++) cin>>s[i];
cin>>s[0];
loong(s[0]);
cout<<ans<<endl;
return 0;
}