#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=(Node*)malloc(sizeof(Node));
    n->id=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;
    t->next=n;
}
void delete()
{
    if(!head) printf("Queue is empty\n");
    else{
    printf("%d", head->id);
    Node*temp = head;
    head = head->next;
    free(temp);
}
int main()

    int n,id,p;
    char op[20];
    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<1 ||id> 100000)
            {
                printf("Invalid input\n");
                return 0;
            }
            insert(id, p);
        }
        else if(!strcmp(op,"DELETE"))
        delete();
         else
         {
            
                printf("Invalid input\n");
                return 0;
        }
    }
}