#include <iostream>
#include <string.h>
using namespace std;
char a[102],b[102][102];
int open;
bool findMatch(int i,int j){
int k=0;
while(k<strlen(a))
{
if(open)
{
if(a[k]!=b[i][j]) return false;
else {j++; k++;}
}
else
{
if(((int)a[k]-(int)b[i][j])!='A'-'a'&&((int)b[i][j]-(int)a[k])!='A'-'a'&&a[k]!=b[i][j]) return false;
else {j++;k++;}
}
}
return true;
}
int main() {
int n,i,j;
while(cin.getline(a,102))
{
cin>>open>>n;
cin.get();
for(i=0;i<n;i++)
cin.getline(b[i],102);
for(i=0;i<n;i++)
{
j=0;
if(strlen(b[i])>=strlen(a))
{
while(j<=strlen(b[i])-strlen(a))
{
if(findMatch(i,j)) break;
else j++;
}
if(j<=strlen(b[i])-strlen(a)) cout<<b[i]<<endl;
}
}
}
return 0;
}
#include <string.h>
using namespace std;
char a[102],b[102][102];
int open;
bool findMatch(int i,int j){
int k=0;
while(k<strlen(a))
{
if(open)
{
if(a[k]!=b[i][j]) return false;
else {j++; k++;}
}
else
{
if(((int)a[k]-(int)b[i][j])!='A'-'a'&&((int)b[i][j]-(int)a[k])!='A'-'a'&&a[k]!=b[i][j]) return false;
else {j++;k++;}
}
}
return true;
}
int main() {
int n,i,j;
while(cin.getline(a,102))
{
cin>>open>>n;
cin.get();
for(i=0;i<n;i++)
cin.getline(b[i],102);
for(i=0;i<n;i++)
{
j=0;
if(strlen(b[i])>=strlen(a))
{
while(j<=strlen(b[i])-strlen(a))
{
if(findMatch(i,j)) break;
else j++;
}
if(j<=strlen(b[i])-strlen(a)) cout<<b[i]<<endl;
}
}
}
return 0;
}