明明本地能过地三个点QAQ
#include<cstdio>
#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
using namespace std;
#define gc getchar()
char a[220][220];
char b[200010];
string tb;
int len[220],lb;
int cnt=1;
int f[200020];
int main()
{
char tmp=gc;
while(tmp!='.'){
switch(tmp){
case ' ':{
cnt+=1;
break;
}
case '\n':{
cnt+=1;
break;
}
default:{
a[cnt][++len[cnt]]=tmp;
break;
}
}
tmp=gc;
}
string x;
while(cin>>x){
tb+=x;
}
int i,j,k;
lb=tb.length();
for(i=0;i<lb;i++){
b[i+1]=tb[i];
}
f[0]=1;
for(i=1;i<=lb;i++)
{
if(!f[i-1])continue;
for(j=1;j<=cnt;j++){
if(b[i]!=a[j][1])continue;
bool mark=1;
for(k=2;k<=len[j];k++){
if(b[i+k-1]!=a[j][k]){
mark=0;
break;
}
}
if(mark)f[i+k-2]=1;
}
}
for(i=lb;i>=0;i--){
if(f[i]){
printf("%d\n",i);
return 0;
}
}
}