#include<stdio.h>#include<string.h>struct Node{ char key[21];}node[21];struct Ans{ char ss[100]; int count;}ans[21];void Str2str(char ss[]){ for (int i=0;ss[i];i++) { if(ss[i]>='A' && ss[i]<='Z') ss[i]+=32; }}int main(){ int n,k,i,j,t; char word[100]; int tes=1; while(scanf("%d%d",&n,&k)!=EOF) { int max=0; getchar(); memset(ans,0,sizeof(ans)); for (i=0;i<n;i++) { gets(node[i].key); } int cas=0; int flag=0; for (i=0;i<k;i++) { gets(ans[i].ss); int leng=strlen(ans[i].ss); for (j=0;j<=leng;j++) { if((ans[i].ss[j]<'A' || ans[i].ss[j]>'z' || (ans[i].ss[j]>'Z' && ans[i].ss[j]<'a') || j==leng) && flag==1) { flag=0; word[cas]=' '; cas=0; Str2str(word); for (t=0;t<n;t++) { if(!strcmp(word,node[t].key)) ans[i].count++; } } else { word[cas++]=ans[i].ss[j]; flag=1; } } if(ans[i].count>max) max=ans[i].count; } printf("Excuse Set #%dn",tes++); for (i=0;i<k;i++) { if(ans[i].count==max) printf("%sn",ans[i].ss); } printf("n"); } return 0;}