#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct node{
    int id;
    int priority;
    struct node*next;
}node;
node* insert(node*head,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==NULL||priority>head->priority)
    {
        new_node->next=head;
        return new_node;
    }
    node* curr=head;
    while(curr->next!=NULL&&curr->next->priority)
    {
        curr=curr->next;
    }
    new_node->next=curr->next;
    curr->next=new_node;
    return head;
}
node* delete(node* head)
{
    if(head==NULL)
        return NULL;
    node* temp=head;
    printf("%d\n",head->id);
    head=head->next;
    free(temp);
    return head;
}
int main()
{
    int n;
    scanf("%d",&n);
    node* head=NULL;
    for(int i=0;i<n;i=+)
    {
        char cmd[10];
        scanf("%s",cmd);
        if(strcmp(cmd,"INSERT")==0)
        {
            int id ,priority;
            scanf("%d %d",&id,&priority);
            head=insert(head,id,priority);
        }
        else if(strcmp(cmd,"DELETE")==0)
        
        {
            head=delete(head);
        }
    }
    while(head!=NULL)
    {
        node*temp=head;
        head=head->next;
        free(temp);
    }
}