/*Goran Flegar
Prva gimnazija Varazdin
Varazdin, Croatia
ACSL 2010-2011
International Senior
Contest #2
Problem: "Search"*/
#include<cstdio>
bool match(char *s,char *wc){
if(wc[0]=='\0' &&
s[0]=='\0')return 1;
if(wc[0]=='\0' || s[0]=='\0'
&& wc[0]!='*') return 0;
if((wc[0]>='A' &&
wc[0]<='Z' || wc[0]>='0' && wc[0]<='9') &&
wc[0]==s[0])return match(s+1,wc+1);
if(wc[0]=='?')return
match(s+1,wc+1);
if(wc[0]=='[' &&
s[0]>=wc[1] && s[0]<=wc[3])return match(s+1,wc+5);
if(wc[0]=='*'){
int i=-1;
do{
++i;
if(match(s+i,wc+1))return
1;
}while(s[i]!='\0');
}
return 0;
}
int main(void){
char data[10][100];
for(int
i=0;i<10;++i)scanf("%s",data[i]);
char wcard[100];
for(int rep=0;rep<5;++rep){
scanf("%s",wcard);
for(int i=0;i<10;++i){
if(match(data[i],wcard))printf("%s ",data[i]);
}
printf("\n");
}
return 0;
}