/*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;
}