#include <cstdio> #include<cstring> using namespace std; short e[101],q[101][101],fin[101],f[101]; int main() { char s[101][42],name[21],*p,*l2; short n,m,t,w,r,u,l1,i,j; scanf("%hd%hd",&n,&m); for(i=1;i<=m;++i) { scanf("%s",&s[i]); strcat(s[i]," "); scanf("%s",&name); strcat(s[i],name); } scanf("%hd",&t); for(i=0;i<t;++i) { scanf("%hd",&w); if(w==1) { scanf("%hd",&j); if(e[j]==0) { e[j]=1; f[j]=0; } else { e[j]=0; fin[j]=0; } } else if(w==2) { scanf("%hd",&j); r=0; scanf("%s",&name); u=1; while(r==0) { if(strstr(s[u],name)!=NULL) { p=strstr(s[u],name); l2=p+strlen(name); l1=l2-s[u]; if((s[u][l1]==NULL)||(s[u][l2-s[u]]==' ')) r=1; } else ++u; } ++fin[j]; q[j][fin[j]]=u; } else if(w==3) { scanf("%hd",&j); ++f[j]; } else if(w==4) { scanf("%hd",&j); if(fin[j]!=0) { ++f[j]; for(r=fin[j];r>f[j];--r) printf("%s ",s[q[j][r]]); --f[j]; printf("%s\n",s[q[j][r]]); } else printf("-1\n"); } else { scanf("%s",&name); r=0; u=1; while((r==0)&&(u<=n)) { for(w=f[u]+1;w<=fin[j]&&r==0;++w) if(strstr(s[q[u][w]],name)!=NULL) { p=strstr(s[q[u][w]],name); l2=p+strlen(name); l1=l2-s[u]; if((s[q[u][w]][l1]==NULL)||(s[q[u][w]][l2-s[q[u][w]]]==' ')) r=1; } ++u; } --u; if(r!=0) printf("%hd\n",u); else printf("-1\n"); } } return 0; }