#include<bits/stdc++.h>
using namespace std;
int T1,dh[101],r[11],c[11];
string e[11][101][11],bt[101][11],name[11];
int which1(string g){
for(int i=1;i<=T1;i++){
if(name[i]==g) return i;
}
}
int findlist(int n,string g){
for(int i=1;i<=r[n];i++){
if(bt[n][i]==g){
return i;
}
}
}
int main(){
freopen("P10486.in","r",stdin);
freopen("P10486.out","w",stdout);
cin>>T1;
cout<<2323;
for(int i=1;i<=T1;i++){
cin>>name[i];
int x,y;
cin>>x>>y;
r[i]=x-1,c[i]=y;
for(int j=1;j<=y;j++) cin>>bt[i][j];
for(int j=1;j<=x;j++){
for(int k=1;k<=y;k++){
cin>>e[i][j][k];
}
}
}
int T2;
cin>>T2;
for(int i=1;i<=T2;i++){
memset(dh,0,sizeof(dh));
string q1,q2,q3;
cin>>q1>>q1;
cin>>q2>>q2;
cin>>q3>>q3;
int cnt=0;
for(int j=0;j<=q1.size();j++){
if(q1[j]==',') dh[++cnt]=j;
}
int wb=which1(q2);
int q31=q3.find('=');
string p1=q3.substr(0,q31),p2=q3.substr(q31+1);
int wd=findlist(wb,p1);
for(int j=1;j<=r[wb];j++){
if(e[wb][j][wd]==p2){
if(cnt==0){
cout<<e[wb][j][findlist(wb,q1)]<<" ";
}
else{
for(int cn=1;cn<=cnt+1;cn++){
string tb;
if(cn==1) tb=q1.substr(0,dh[cn]);
else if(cn==cnt+1) tb=q1.substr(dh[cn-1]+1);
else tb=q1.substr(dh[cn-1]+1,dh[cn]-dh[cn-1]-1);
cout<<e[wb][j][findlist(wb,tb)]<<" ";
}
}
cout<<"\n";
}
}
}
return 0;
}