#include<stdio.h>
#define MAX 10

int rear=-1,front=-1;

typedef struct leaf{
    int id;
    int val;
}s;

s arr[MAX];

void enqueue(int num){
    if(rear==MAX-1){
        printf("Queue is full");
    }
    else{
        if(front==-1){
            front++;
        }
        arr[++rear].val=num;
    }
}

int dequeue(){
    
    for(int i=front ; i<=rear ;i++){
        for(int j=front+1 ; j<=rear ; j++){
            if(arr[i].val < arr[j].val){
                int temp = arr[i].val;
                arr[i].val=arr[j].val;
                arr[j].val=temp;
            }
        }
    }
    if(front==-1 || front>rear){
        printf("Queue is empty");
        return 0;
    }
    else{
       return arr[front].id;
       front++;
    }
    
   
}

int main(){
  int n;
  char inp[20];
  scanf("%d",&n);
  if(n<0){
      printf("Invalid input");
      return 0;
  }
  
  for(int i=0 ; i<n ; i++){
      scanf("%s",inp);
      
     if(!(strcmp(inp,"INSERT"))){
         scanf("%d",arr[i].id);
         scanf("%d",arr[i].val);
         enqueue(val);
     }
     else if(!(strcmp(inp,"DELETE"))){
         dequeue(arr);
         printf("%d ",dequeue());
     }
      
      

  }
  
    
     
     return 0;
  
}