rt
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=2e5+5;
char a[205][20];
char str[N];
char skk[N];
int l;
int dp[205][N],kmp[205];
int ans[N];
int le[205],j;
void Kmp(int x){
j=0;
memset(kmp,0,sizeof(kmp));
for(int i=2;i<=le[x];i++){
while(a[x][1+j]!=a[x][i]&&j){
j=kmp[j];
}
if(a[x][1+j]==a[x][i]) j++;
kmp[i]=j;
}
for(int i=1;i<=strlen(str+1);i++){
while(a[x][j+1]!=str[i]&&j){
j=kmp[j];
}
if(a[x][j+1]==str[i]) j++;
if(j==le[x]){
dp[x][i]=1;
j=kmp[j];
// printf("%d",i);
}
}
// printf("\n");
return ;
}
int main(){
do{
scanf("%s ",a[++l]+1);
if(a[l][1]=='.') break;
}while(1);
while(cin>>skk+1){
int l=0;
for(int i=1;i<=strlen(skk+1);i++){
str[++l]=skk[i];
}
// break;
}
for(int i=1;i<l;i++){
le[i]=strlen(a[i]+1);
Kmp(i);
}
ans[0]=1;
for(int i=1;i<=strlen(str+1);i++){
for(int j=1;j<l;j++){
if(dp[j][i]) ans[i]=ans[i]|ans[i-le[j]];
}
}
for(int i=strlen(str+1);i>=0;i--){
if(ans[i]){
printf("%d",i);
return 0;
}
}
return 0;
}