#include <bits/stdc++.h>
using namespace std;
vector<string>word;
int k,n;
unsigned long maxw = 0;
string maxword;
int vis[100005];
void link(string q)
{
for(int i = 1; i <= word.size() && !vis[i]; i++){
for(unsigned long k = q.size()-1; k > q.size()-word[i].size(); k--){
int flag = 0;
for(unsigned long j = 0,u = k; u < q.size(); j++,u++){
if(word[i][j] == q[u]) flag = 1;
else {flag = 0; break;}
}
if(flag){
vis[i] = 1;
string tmp = q;
tmp.erase(k,q.size());
tmp += word[i];
if(maxw < tmp.size()) maxw = tmp.size();
link(tmp);
vis[i] = 0;
}
}
}
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i++){
string q; cin >> q;
word.push_back(q);
}
char begin; cin >> begin;
for(int i = 1; i <= n; i++)
if(word[i][0] == begin){
vis[i] = 1;
link(word[i]);
vis[i] = 0;
}
cout << maxw <<endl;
}