#include<cstdio>
#include<queue>
#include<cstring>
#include<iostream>
using namespace std;
struct note {
int id;
int deg;
bool friend operator<(note A,note B) {
if(A.deg==B.deg)
return A.id>B.id;
return A.deg<B.deg;
}
} s;
int main() {
int n,a,b,num;
char c[5];
while(scanf("%d",&n)!=EOF) {
priority_queue<note>que[4];
num=1;
for(int l=0; l<n; l++) {
scanf("%s",c);
if(!strcmp(c,"IN")) {
scanf("%d%d",&a,&b);
s.id=num++;
s.deg=b;
que[a].push(s);
} else if(!strcmp(c,"OUT")) {
scanf("%d",&a);
if(!que[a].empty()) {
s=que[a].top();
printf("%d\n",s.id);
que[a].pop();
} else
printf("EMPTY\n");
}
}
}
return 0;
}