#include <bits/stdc++.h>
using namespace std;
int n, t;
char head;
vector<string> arr(25);
void dfs(int len, unordered_map<string, int> Hash, int idx) {
if (len > t) {
t = len;
}
int n = arr[idx].size();
for (int i = 0; i < n; ++ i) {
if (Hash[arr[i]] < 2) {
int m = arr[i].length();
for (int j = n - 1; j > 0; -- j) {
if (arr[idx].substr(j, n - j) == arr[i].substr(0, n - j)) {
++ Hash[arr[i]];
dfs(len + m - n + j, Hash, i);
-- Hash[arr[i]];
}
}
}
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; ++ i) cin >> arr[i];
cin >> head;
unordered_map<string, int> Hash;
for (int i = 0; i < n; ++ i) if (arr[i][0] == head) {
++ Hash[arr[i]];
dfs(arr[i].length(), Hash, i);
-- Hash[arr[i]];
}
cout << t << endl;
return 0;
}