#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxn=1e6+10;
int trie[maxn][26],k,cnt[maxn],fail[maxn];
void insert(char *s){
int len=strlen(s),p=0;
for(int i=0;i<len;i++){
int c=s[i]-'a';
if(!trie[p][c])trie[p][c]=++k;
p=trie[p][c];
}
cnt[p]++;
}
void getfail(){
queue<int>q;
for(int i=0;i<26;i++)
if(trie[0][i])q.push(trie[0][i]),fail[trie[0][i]]=0;
while(!q.empty()){
int t=q.front();q.pop();
for(int i=0;i<26;i++){
if(trie[t][i]){
fail[trie[t][i]]=trie[fail[t]][i];
q.push(trie[t][i]);
}
else{
trie[t][i]=trie[fail[t]][i];
}
}
}
}
int query(char *s){
int len=strlen(s),p=0,ans=0;
for(int i=0;i<len;i++){
p=trie[p][s[i]-'a'];
for(int i=p;i&&~cnt[i];i=fail[i]){
ans+=cnt[i];cnt[i]=-1;
}
}
return ans;
}
int main()
{
int n;
scanf("%d",&n);
char s[maxn];
while(n--){
scanf("%s",s);
insert(s);
}
getfail();
scanf("%s",s);
printf("%d\n",query(s));
}