#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;

char A[34];
int F[102], G[102];
int N;
string S;
vector<string> R;

int main()
{
	cin.sync_with_stdio(false);
	
	cin >> A;
	for (int i = 0; A[i] != 0; ++i)
		++F[A[i] - 'a'];
	
	cin >> N;
	for (int i = 1; i <= N; ++i)
	{
		cin >> S;
		
		memset(G, 0, sizeof(G));
		for (int j = 0; j < int(S.size()); ++j)
			++G[S[j] - 'a'];
		
		bool ok = true;
		for (int j = 0; j < 26; ++j)
			if (G[j] > F[j])
				ok = false;
		if (ok) R.push_back(S);
	}
	
	sort(R.begin(), R.end());
	for (int i = 0; i < int(R.size()); ++i)
		cout << R[i] << '\n';
}