#include<iostream>
#include<deque>
#include<string>
#include<vector>
using namespace std;

struct name
{
	string nume;
	string prenume;
}persoane[105];

int main()
{
	int nr_counters, nr_persoane;
	string nume;
	string prenume;
	string myName;

	freopen("ticket.in", "r", stdin);
	freopen("ticket.out", "w", stdout);

	int nr_operatii, operatie, counter, k, ok;

	// cozile de la countere
	deque<name> cozii[105];
	// starea fiecarei cozi, pt fiecare coada avem o stare
	// initial toate sunt 0 adica inchise
	vector<bool> stare_coada(105);

	cin >> nr_counters >> nr_persoane;

	// citim persoanele
	for(int i = 0; i < nr_persoane; ++i)
	{
		cin >> persoane[i].nume;
		cin >> persoane[i].prenume;
	}
	
	cin >> nr_operatii;

	for(int i = 0; i < nr_operatii; ++i)
	{
		cin >> operatie;
		switch (operatie)
		{
		case 1:
			cin >> counter;
			// se schimba starea
			stare_coada[counter] = !stare_coada[counter];
			// toti oamenii pleaca daca se inchide
			if(stare_coada[counter] == 0)
				cozii[counter].clear();
			break;
		case 2:
			cin >> counter;
			cin >> myName;
			for(int i = 0; i < nr_persoane; ++i)
			{
				if(persoane[i].nume == myName || persoane[i].prenume == myName)
					cozii[counter].push_back(persoane[i]);
			}
			break;
		case 3:
			cin >> counter;
			cozii[counter].pop_front();
			break;
		case 4:
			cin >> counter;
			if(cozii[counter].size() == 0 || stare_coada[counter] == 0)
				printf("-1");
			else
			{
				for(k = cozii[counter].size()-1; k > 0; --k)
					cout << cozii[counter].at(k).nume + " " + cozii[counter].at(k).prenume + " ";
				cout << cozii[counter].at(0).nume + " " + cozii[counter].at(0).prenume << endl;
			}
			break;
		case 5:
			cin >> myName;
			ok = 0;
			for(int i = 0; i < nr_counters; ++i)
			{
				if(stare_coada[i] == 1)
				{
					for(int j = 0; j < cozii[i].size(); ++j)
					{
						if(cozii[i].at(j).nume == myName || cozii[i].at(j).prenume == myName)
						{
							cout << i << endl;
							ok = 1;
							break;
						}
					}
				}
			}
			if(ok == 0)
				cout << "-1" << endl;
			break;
		}
	}
	
	return 0;
}