#include <stdio.h>

#include <string.h>

/**

    Name: Rares SMEU

    Grade: 10

    School: NATIONAL COLLEGE OF COMPUTER SCIENCE "GR.MOISIL"

    Division: INT 5

*/

 

 

using namespace std;

 

char c[100][100];

char a[100];

char d[100];

char e[100];

int afis=0;

char inceput;

char sfarsit;

 

void citire()

{

    for(int i=0;i<3;i++)

    {

        scanf("%s",c[i]);

        c[i][strlen(c[i])-1]=0;

    }

    scanf("%s\n",c[3]);

}

 

void cuvant(int y)

{

    for(int i=0;i<strlen(d);i++)

    {

        if(a[i]!=d[i] && a[i]!='?')

        {

            return;

        }

    }

    printf("%s ",c[y]);

    afis=1;

}

 

 

int main()

{

    freopen("search.in","r",stdin);

    citire();

    for(int w=0;w<5;w++)

    {

        afis=0;

        gets(e);

        int x=-1;

        if(strchr(e,'['))

        {

            x=strchr(e,'[')-e;

            inceput=e[x+1];

            sfarsit=e[x+3];

            strcpy(e+x,e+x+4);

            if(e[0]=='*')

                x--;

        }

        for(int i=0;i<4;i++)

        {

            strcpy(d,c[i]);

            strcpy(a,e);

            if(a[0]=='*')

            {

                int r=strlen(d)-strlen(a)+1 ;

                if(r < 0)

                    continue;

                strcpy(a,a+1);

                strcpy(d,d+strlen(d)-strlen(a));

            }

            if(a[strlen(a)-1]=='*')

            {

                a[strlen(a)-1]=0;

                memset(d+strlen(a),0,15);

            }

            if(strchr(a,']'))

            {

                for(char j=inceput;j<=sfarsit;j++)

                {

                    a[x]=j;

                    cuvant(i);

                }

            }

            else

                cuvant(i);

        }

        if(afis==0)

            printf("No Match");

        printf("\n");

 

    }

    return 0;

}