/*
分析:
优先队列水题。
注意优先队列要定义在大while里面,等效于每次都
初始化为空。
2012-09-16
*/
分析:
优先队列水题。
注意优先队列要定义在大while里面,等效于每次都
初始化为空。
2012-09-16
*/
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"queue"
using namespace std;
int tot;
struct node
{
int pri;
int num;
friend bool operator<(node n1,node n2)
{
if(n1.pri==n2.pri) return n2.num<n1.num;
else return n1.pri<n2.pri;
}
};
int main()
{
int n;
node now;
int a,b;
char str[20];
while(scanf("%d",&n)!=-1)
{
priority_queue<node>q[4];
tot=0;
while(n--)
{
scanf("%s",str);
if(strcmp(str,"OUT")==0)
{
scanf("%d",&a);
if(q[a].empty()) printf("EMPTY\n");
else
{
now=q[a].top();
q[a].pop();
printf("%d\n",now.num);
}
}
else if(strcmp(str,"IN")==0)
{
scanf("%d%d",&a,&b);
now.num=++tot;
now.pri=b;
q[a].push(now);
}
}
}
return 0;
}