#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
    int id,priority;
    struct Node*next;
}node;
node*head=NULL;
void insert(int id,int priority)
{
    node*n=malloc(sizeof(node));
    n->id=id;n->priority=priority;n->next=NULL;
    if(!head||priority>head->priority)
    {
        n->next=head;
        head=n;
        return;
    }
    node*t=head;
    while(t->next && t->next->priority>=priority)
    t=t->next;
    n->next=t->next;
    t->next=n;
}
void delete()
{
    if(!head)printf("Queue is empty\n");
    else{
        printf("%d\n",head->id);
        node*temp=head;
        head=head->next;
        free(temp);
    }
}
int main(){
    int n,id,p;
    char op[10];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%s",op);
        if(!strcmp(op,"INSERT")){
            scanf("%d %d",&id,&p);
            if(p<1||id<1||id>100000)
            {
                printf("Invalid input");
                return 0;
            }
            insert(id,p);
        }
        else if(!strcmp(op,"DELETE"))
        delete();
        else{
            printf("Invalid input");
            return 0;
        }
    }
}