#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Node{
    int ID;
    int priority;
    struct Node *next;
    
}node;

node *front = NULL;


void insert(int ID, int p){
    node *newnode = (node*)malloc(sizeof(node));
    newnode->ID = ID;
    newnode->priority = p;
    newnode->next = NULL;
    
    if(front == NULL || p > front->priority){
        newnode->next = front;
        front = newnode;
        return;
    }
    
    node *temp = front;
    while(temp->next !=NULL && temp->next->priority >= p){
        temp = temp->next;
    }
    
    newnode->next = temp->next;
    temp->next = newnode;
}
void delete(){
    if(front ==NULL){
        printf("Queue is empty\n");
        return;
    
   }
   node *temp = front;
   printf("%d\n", temp->ID);
   front = front->next;
   free(temp);
}
int main(){
    int n;
    scanf("%d", &n);
    char cmd[10];
    int ID, p;
    
    while(n--){
        scanf("%s", cmd);
        if(strcmp(cmd, "INSERT") == 0) || strcmp(cmd,"insert) == 0){        
            scanf("%d %d", &ID, &p);
            insert(ID, p);
        }else if(strcmp(cmd, "DELETE") == 0) || strcmp(cmd,"delete) == 0){
            delete();
        }
    }
    return 0;
}