#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* new_node=(Node*)malloc(sizeof(Node));
    new_node->id=id;
    new_node->priority=priority;
    new_node->next=NULL;
    if(!head || priority> head->priority){
        new_node->next=head;
        head=new_node;
        return ;
    }
    Node* curr=head;
    while(curr->next && curr->next->priority>=priority)
    curr=curr->next;
    new_node->next=curr->next;
    curr->next=new_node;
}
void delete(){
    if(!head){
        printf("Queue is empty");
        return ;
    }
    printf("%d",head->id);
    Node* temp=head;
    head =head->next;
    free(temp);
}
int main()
{
    int N, id, priority;
    char cmd [20];
    scanf("%d",&N);
    for(int i=0;i<N;i++){
        scanf("%s",&cmd);
        fgets(cmd,sizeof(cmd), stdin);
        if(strncmp(cmd ,"INSERT", 6)==0)
        {
            scanf(cmd + 7,"%d %d",&id, &priority);
            insert(id, priority);
        } 
        else if(strncmp(cmd, "DELETE", 6)==0)
        {
            delete();
        }
    }
    return 0;
}