#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

char c1[101];
int nr1[101], nr2[101], i, j, ok, n;

struct cuv
{
	char a[51];
};
cuv c[70001];

bool cmp(cuv a, cuv b)
{
	return strcmp(a.a, b.a)<0;
}

int main()
{
	cin>>c1;
	cin>>n;
	int lim=strlen(c1);
	for(i=0; i<lim; i++)
	{
		nr1[c1[i]-'a']++;
	}
	for(i=1; i<=n; i++)
	{
		cin>>c[i].a;
	}
	sort(c+1, c+n+1, cmp);
	for(i=1; i<=n; i++)
	{
		int p=strlen(c[i].a);
		for(j=0; j<p; j++)
		{
			nr2[c[i].a[j]-'a']++;
		}
		ok=1;
		for(j=0; j<='z'-'a'; j++)
		{
			if(nr1[j]<nr2[j])
				ok=0;
			nr2[j]=0;
		}
		if(ok)
		{
			cout<<c[i].a<<"\n";
		}
	}
}