#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char founded[70000][31];

void quick_sort(int left,int right)
{
    int i=left,j=right;
    char pivot[31];
    int k;
    for (k=0;k<strlen(founded[(int)((i+j)/2)]);k++)
    {
        pivot[k]=founded[(int)((i+j)/2)][k];
    }
    pivot[strlen(founded[(int)((i+j)/2)])]='\0';
    while (i<=j)
    {
        while (strcmp(founded[i],pivot)<-1)
        {
            i++;
        }
        while (strcmp(founded[j],pivot)>1)
        {
            j--;
        }
        if (i<=j)
        {
            char temp[31];
            for (k=0;k<strlen(founded[i]);k++)
            {
                temp[k]=founded[i][k];
            }
            temp[strlen(founded[i])]='\0';
            for (k=0;k<strlen(founded[j]);k++)
            {
                founded[i][k]=founded[j][k];
            }
            founded[i][strlen(founded[j])]='\0';
            for (k=0;k<strlen(temp);k++)
            {
                founded[j][k]=temp[k];
            }
            founded[j][strlen(temp)]='\0';
            i++;
            j--;
        }
        if (left<j)
        {
            quick_sort(left,j);
        }
        if (i>right)
        {
            quick_sort(i,right);
        }
    }
}

void insert(char c,char* s,int k)
{
    int i;
    for (i=strlen(s)+1;i>=k+1;i--)
    {
        s[i]=s[i-1];
    }
    s[i]=c;
}

char * letters(char* s)
{
    int i;
    char let[30];
    let[0]='\0';
    for (i=0;i<strlen(s);i++)
    {
        int j=0;
        while ((j<strlen(let)) && (let[i]<s[i]))
        {
            j++;
        }
        insert(s[i],let,j);
    }
    return let;
}

int main()
{
    char sequence[30];
    scanf("%s",sequence);
    char word[10000][30];
    int n;
    scanf("%d",&n);
    int i;
    for (i=0;i<n;i++)
    {
        scanf("%s",word[i]);
    }
    int nr=0;
    for (i=0;i<n;i++)
    {
        int j;
        for (j=0;j<strlen(sequence)-strlen(word[i])+1;j++)
        {
            int k;
            char temp[31];
            for (k=0;k<strlen(word[i]);k++)
            {
                temp[k]=sequence[j+k];
            }
            temp[strlen(word[i])]='\0';
            if (strcmp(temp,word[i])==0)
            {
                for (k=0;k<strlen(word[i]);k++)
                {
                    founded[nr][k]=word[i][k];
                }
                founded[nr][strlen(word[i])]='\0';
                nr++;
            }
        }
    }
    quick_sort(0,nr-1);
    for (i=0;i<nr;i++)
    {
        printf("%s\n",founded[i]);
    }
    return 0;
}