#include<bits/stdc++.h>
using namespace std;
long long t;
struct b{
string name;
long long x,y;
string lei[105],ren[105][105];
}biao[105];
string tt,a,b,c;
string cha[105];
long long bla,top=0,ji=0;
long long cl[105];
string pan,mu;
int main(){
scanf("%lld",&t);
for(int i=1;i<=t;i++){
cin>>biao[i].name;
scanf("%lld %lld",&biao[i].x,&biao[i].y);
for(int j=1;j<=biao[i].y;j++){
cin>>biao[i].lei[j];
}
for(int j=1;j<biao[i].x;j++){
for(int z=1;z<=biao[i].y;z++){
cin>>biao[i].ren[j][z];
}
}
}
long long m;
scanf("%lld",&m);
while(m--){
top=ji=0;
cin>>tt>>a>>tt>>b>>tt>>c;
for(int i=1;i<=t;i++){
if(biao[i].name==b){
bla=i;
break;
}
}
for(int i=0;i<a.length();i++){
if(a[i]==','){
cha[++top]=a.substr(ji,i);
ji=i+1;
}
}
cha[++top]=a.substr(ji,a.length());
for(int i=1;i<=top;i++){
for(int j=1;j<=biao[bla].y;j++){
if(biao[bla].lei[j]==cha[i]){
cl[i]=j;
break;
}
}
}
for(int i=0;i<c.length();i++){
if(c[i]=='='){
pan=c.substr(0,i);
mu=c.substr(i+1,c.length());
break;
}
}
for(int i=1;i<biao[bla].x;i++){
for(int j=1;j<=biao[bla].y;j++){
if(biao[bla].lei[j]==pan && biao[bla].ren[i][j]==mu){
for(int z=1;z<=top;z++){
cout<<biao[bla].ren[i][cl[z]];
if(z!=top){
cout<<" ";
}
}
cout<<endl;
}
}
}
}
}