#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
string t[301],s,str;;
int lent[N],f[N],mp[N][202],cnt[N],lens;
int nxt[N];
int main(){
int sum=0;
while(cin>>t[++sum]&&t[sum]!="."){
t[sum]="#"+t[sum];
lent[sum]=t[sum].size();
}
while(cin>>str){
s+=str;
}
s="#"+s;
lens=s.size();
for(int k=1;k<=sum;k++){
nxt[0]=-1;
for(int i=2,j=0;i<=lent[k];i++){
while(j&&t[k][j+1]!=t[k][i]){
j=nxt[j];
}
if(t[k][j+1]==t[k][i]){
j++;
}
nxt[i]=j;
}
for(int i=1,j=0;i<=lens;i++){
while(j&&t[k][j+1]!=s[i]){
j=nxt[j];
}
if(t[k][j+1]==s[i]){
j++;
}
if(j==lent[k]-1){
mp[i][++cnt[i]]=j;
j=nxt[j];
}
}
}
int ans=0;
f[0]=1;
for(int i=1;i<=lens;i++ ){
for(int j=1;j<=cnt[i];j++){
f[i]=f[i]|f[i-mp[i][j]];
if(f[i]){
ans=max(ans,i);
break;
}
}
}
cout<<ans;
return 0;
}