#include<stdio.h>
#include<stdlib.h>
#include<string.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;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;
    y->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||p>100||id>100000){
                printf("Invalid input");
                return 0;
            }
            insert(id,p);
        }
        else if(!strcmp(op,"DELETE"))
        delete();
        else{
            printf("Invalid input\n");
            return 0;
        }
    }
}