RT
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,p[31],m,now;
int ans = -1;
string s[31],mb;
inline ll read() {
ll x = 0, m = 1;
char ch = getchar();
while(!isdigit(ch)) {
if(ch == '-') m = -1;
ch = getchar();
}
while(isdigit(ch)) {
x = x * 10 + ch - 48;
ch = getchar();
}
return x * m;
}
inline void write(ll x) {
if(x < 0) {
putchar('-');
write(-x);
return;
}
if(x >= 10) write(x / 10);
putchar(x % 10 + '0');
}
inline int solve(string mb,string xx) {
int len = mb . size();
for(int j = len - 1; j >= 0; -- j) {
if(mb[j] != xx[0]) continue;
int now = j;
for(int k = 0; k < xx.size(); ++ k) {
if(mb[now] == xx[k]) {
++ now;
}
else break;
}
if(now == len) return now - j;
}
return 0;
}
inline void dfs(int c,string mb) {
int len = mb.size();
ans = max(ans,len - c);
for(int i = 1; i <= n; ++ i) {
if(p[i] == 2) continue;
int sum = 0;
sum = solve(mb,s[i]);
if(!sum) continue;
++ p[i];
dfs(c + sum,mb + s[i]);
-- p[i];
}
}
signed main() {
n = read();
for(int i = 1; i <= n; ++ i) getline(cin,s[i]);
getline(cin,mb);
dfs(0,mb);
write(ans);
return 0;
}