#include <iostream>
#include <list>
#include <string.h>
using namespace std;


list <string> sol;
list <string>::iterator it;
int n,lit[31],aux[31];
int main()
{
    string l;
   getline(cin,l);

   cin>>n;
   cin.get();
   for(unsigned int i=0;i<l.size();i++)
        lit[l[i]-'a']++;

   for(int i=0;i<n;i++)
        {
        bool ok=1;
        string c;
        getline(cin,c);
        for(unsigned int i=0;i<l.size();i++)
            aux[c[i]-'a']++;
        for(int i=0;i<31;i++){
            if(aux[i] && aux[i]>lit[i])
                ok=0;
            aux[i]=0;
        }

        if(ok){
        //char *cuv=new char[strlen(c)];
        //strcpy(cuv,c);
        sol.push_back(c);
        }
        }
    sol.sort();
    for(it=sol.begin();it!=sol.end();++it)
        cout<<*it<<endl;




}