#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string *p,sec,s,*pp;
vector <string>S;

int i,v[30],V[40],n,ok,j;
bool crit(string a ,string b)
{
  return a<b;
}
int main()
{
    cin>>sec;
    for(i=0;i<sec.size();i++)
        V[sec[i]-'a']++;
    cin>>n;
    for(j=1;j<=n;j++)
    {
        cin>>s;
       for(i=0;i<30;i++)
            v[i]=0;
        ok=1;
        for(i=0;i<s.size();i++)
        {
            v[s[i]-'a']++;
            if(v[s[i]-'a']>V[s[i]-'a'])
            {
                ok=0;
                break;
            }
        }
        if(ok)
            S.push_back(s);
    }
    sort(S.begin(),S.end());
    for(vector <string>::iterator it=S.begin();it!=S.end();it++)
        cout<<*it<<'\n';
    return 0;
}