#include <bits/stdc++.h>
using namespace std;
int order[200000];
int t, n;
string alphabet;
string words[200000];
bool compare(string a, string b)
{
int i = 0;
while(i < a.length() && i < b.length()) {
if(a[i] == b[i]) {
i++;
}
else {
if((order[a[i] - 'a']) > (order[b[i] - 'a']))
return false;
else
return true;
}
}
if(a.length() > b.length())
return false;
else
return true;
return false;
}
int main()
{
cin>>t;
while(t--) {
cin>>alphabet>>n;
for(int i = 0; i < alphabet.length(); i++)
order[(alphabet[i] - 'a')] = i;
for(int i = 0; i < n; i++)
cin>>words[i];
sort(words, words + n, compare);
for(int i = 0; i < n; i++)
cout<<words[i]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG9yZGVyWzIwMDAwMF07CmludCB0LCBuOwpzdHJpbmcgYWxwaGFiZXQ7CnN0cmluZyB3b3Jkc1syMDAwMDBdOwoKYm9vbCBjb21wYXJlKHN0cmluZyBhLCBzdHJpbmcgYikKewoJaW50IGkgPSAwOwoJCgl3aGlsZShpIDwgYS5sZW5ndGgoKSAmJiBpIDwgYi5sZW5ndGgoKSkgewoJCQoJCWlmKGFbaV0gPT0gYltpXSkgewoJCQlpKys7CgkJfQoJCWVsc2UgewoJCQkKCQkJaWYoKG9yZGVyW2FbaV0gLSAnYSddKSA+IChvcmRlcltiW2ldIC0gJ2EnXSkpCgkJCQlyZXR1cm4gZmFsc2U7CgkJCWVsc2UKCQkJCXJldHVybiB0cnVlOwoJCX0KCX0KCQoJaWYoYS5sZW5ndGgoKSA+IGIubGVuZ3RoKCkpCgkJcmV0dXJuIGZhbHNlOwoJZWxzZQoJCXJldHVybiB0cnVlOwoJCglyZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkKewkKCWNpbj4+dDsKCXdoaWxlKHQtLSkgewoJCWNpbj4+YWxwaGFiZXQ+Pm47CgkJCgkJZm9yKGludCBpID0gMDsgaSA8IGFscGhhYmV0Lmxlbmd0aCgpOyBpKyspCgkJCW9yZGVyWyhhbHBoYWJldFtpXSAtICdhJyldID0gaTsKCQkKCQlmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCQljaW4+PndvcmRzW2ldOwoJCQkKCQlzb3J0KHdvcmRzLCB3b3JkcyArIG4sIGNvbXBhcmUpOwoJCQoJCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJCWNvdXQ8PHdvcmRzW2ldPDxlbmRsOwoJfQoJCglyZXR1cm4gMDsKfQo=