int LCS(char *s1, int l1, char *s2, int l2, int &ansi, int &ansj) { int i,j,k,l,ans=0; ansi=0; ansj=0; for(i=0; i<l1-ans; i++) { makefail( s1+i, l1-i ); kmp( s2, l2, s1+i, l1-i, 0, l, j); if(l>ans) { ans=l; ansi=i; ansj=j; } } return ans; }
int main(){ scanf("%d",&cas); for(int ca=1;ca<=cas;ca++){ scanf("%d",&n); pos=0;newnode(); for(int i=1;i<=n;i++){ scanf("%s",s); insert(s); } makefail(); scanf("%s",find); int x=makeans(find); printf("%d\n",x); } return 0; }