#include
#include<bits/stdc++.h>
using namespace std;
class node{
public:
char ch;
unordered_map<char,node*>m;
bool terminat;
node(char data){
ch=data;
terminat=false;
}
};
class trie{
node * root;
public:
trie(){
root=new node(’\0’);
}
void insert(string s){
node * temp=root;
for(int i=0;i<s.length();i++){
char ch=s[i];
if(temp->m[ch]==0){
node * n=new node(ch);
temp->m[ch]=n;
temp=n;
}
else{
temp=temp->m[ch];
}
}
temp->terminat=true;
}
void prefix(string s){
string ans="";
node * temp=root;
for(int i=0;i<s.length();i++){
char ch=s[i];
if(temp->m[ch]==0){
cout<< "No suggestions"<<endl;
return;
}
else{
ans+=s[i];
temp=temp->m[ch];
}
}
printall(temp,s,"");
}
void printall(node* temp,string &s,string curr){
if(temp->terminat){
cout<<s+curr<<endl;
}
for(auto m1:temp->m){
printall(m1.second,s,curr+m1.first);
}
}
};
int main() {
int n;
cin>>n;
trie t;
string s;
for(int i=0;i<n;i++){
cin>>s;
t.insert(s);
}
int q;
cin>>q;
while(q–){
cin>>s;
t.prefix(s);
}
}