#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <string>

using namespace std;

struct button{
	string toName;
	int minx;
	int maxx;
	int miny;
	int maxy;
};

int page;
vector<string> history;
int n;
int h,w;
map<string,vector<button> > pageInfo;

int main(){

	while(cin>>n&&n!=0){
		history.clear();
		pageInfo.clear();
		page=0;
		history.clear();
		cin>>w>>h;
		for(int i = 0; i < n; i++){
			string str;
			int bn;
			cin>>str>>bn;
			if(i==0){
				history.push_back(str);
			}
			vector<button> vb;
			for(int j = 0; j < bn; j++){
				button b;
				cin>>b.minx>>b.miny>>b.maxx>>b.maxy>>b.toName;
				vb.push_back(b);
			}
			pageInfo[str]=vb;
		}
		int m;
		cin>>m;
		// operation start
		for(int i = 0; i < m; i++){
			string op;
			cin>>op;
			if(op=="click"){
				int x,y;
				cin>>x>>y;
				// buttonÌÊuðcheck
				for(int j = 0; j < pageInfo[history[page]].size(); j++){
					// Ú®Å«éÌÈçÎA»ÝÌêÌ¨É éhistoryðíµA»ÝÌêÌ¨ÉÚ®æy[WðÇÁµApageðCNg
					button &b = pageInfo[history[page]][j];
					if(b.minx<=x&&b.maxx>=x&&b.miny<=y&&b.maxy>=y){
						// »ÝÌêÌEÉ éhistoryðí
						int t=history.size();
						for(int k = page+1; k < t; k++){
							history.erase(history.begin()+history.size()-1);
						}
						// »ÝÌêÌEÉÚ®æy[WðÇÁ
						history.push_back(b.toName);
						page++;
						break;
					}
				}
			}
			else if(op=="show"){
				cout<<history[page]<<endl;
			}
			else if(op=="back"){
				page=max(0,page-1);
			}
			else if(op=="forward"){
				page=min((int)history.size()-1,page+1);
			}
		}
	}

	return 0;
}