#include<iostream>
#include<string.h>
using namespace std;
struct p
{
	char name[21],sur[21];
	int qu;
};
p pas[101];
struct coada
{
	int pers[101],v;
};
coada q[101];
int n,m,i,t,j,ja,valid,x;
char s[100];
int main()
{
	cin>>n>>m;
	for(i=1;i<=m;i++)
		cin>>pas[i].name>>pas[i].sur;
	cin>>t;
	for(i=1;i<=t;i++)
	{
		cin>>valid;
		if(valid==1)
		{
			cin>>x;
			q[x].v=1-q[x].v;
			if(q[x].v==0)
			{
				j=1;
				while(pas[q[i].pers[j]].qu!=0&&j<=m)
				{
					pas[q[i].pers[j]].qu=0;
					q[i].pers[j]=0;
					j++;
				}
			}
		}
		if(valid==2)
		{
			cin>>x;
			cin>>s;
			for(j=1;j<=m;j++)
				if(strcmp(pas[j].name,s)==0||strcmp(pas[j].sur,s)==0)
				{
					pas[j].qu=x;
					ja=1;
					while(q[x].pers[ja]!=0)
						ja++;
					q[x].pers[ja]=j;
				}
		}
		if(valid==3)
		{
			cin>>x;
			pas[x].qu=0;
			for(j=1;j<=m;j++)
				q[x].pers[j]=q[x].pers[j+1];
		}
		if(valid==4)
		{
			cin>>x;
			j=1;
			while(q[x].pers[j]!=0)
				j++;
			j--;
			if(j==0)
				cout<<-1;
			else
			{
				for(ja=j;ja>=2;ja--)
					cout<<pas[ja].name<<" "<<pas[ja].sur<<" ";
				cout<<pas[ja].name<<" "<<pas[ja].sur;
			}
			cout<<'\n';
		}
		if(valid==5)
		{
			cin>>s;
			for(j=1;j<=m;j++)
				if(strcmp(pas[j].name,s)==0||strcmp(pas[j].sur,s)==0)
				{
					if(pas[j].qu==0)
						cout<<-1;
					else
						cout<<pas[j].qu;
				}
			cout<<'\n';
		}
	}
	return 0;
}