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