#include<stdio.h>
#include<stdlib.h>

#define MAX 1000
int queue[MAX],qsize=0;
int tempList[MAX],tsize=0;
int LastProcessed=-1;
void enqueue(int x){
    queue[qsize++]=x;
}
void sort(int arr[],int n){
    for(int i=0;i<n-1;i++){
        for(int j=i+1;j<n;j++){
            if(arr[i]>arr[j]){
                int tmp=arr[i];
                arr[i]=arr[j];
                arr[j]=tmp;
            }
        }
    }
}
void processNext(){
    if(qsize==0){
        printf("0\n");
        return;
    }
    sort(queue,qsize);
    int found=0;
    for(int i=0;i<qsize;i++){
        if(LastProcessed==-1 || queue[i]>= LastProcessed){
            lastprocessed=queue[i];
            printf("%d\n",queue[i]);
            for(int j=i;j<qsize-1;j++){
                queue[j]=queue[j+1];
            }
            qsize--;
            found=1;
            break;
        }
    }
    if(!found){
        for(int i=0;i<qsize;i++){
            tempList[tsize++]=queue[i];
        }
        qsize=0;
        printf("0\n");
    }
}
void printloads(){
    if(qsize==0 && tsize==0){
        printf("0\n");
        return;
    }
    int all[MAX*2],n=0;
    for(int i=0;i<qsize;i++) all[n++]=queue[i];
    for(int i=0;i<tsize;i++) all[n++]=tempList[i];
    sort(all,n);
    for(int i=0;i<n;i++){
        printf("%d",all[i]);
        if(i<n-1)printf(" ");
    }
    printf("\n");
}
int main(){
    int N;
    if(scanf("%d",&N)!=1 || N<1 || N>MAX){
        printf("Invalid input\n");
        return 0;
    }
    for(int i=0;i<N;i++){
        int op;
        if(scanf("%d",&op)!=1 || op<1 || op>3){
            printf("Invalid input\n");
            return 0;
        }
        if(op==1){
            int x;
            if(scanf("%d",&x)!=1 || x<1 || x>10000){
                printf("Invalid input\n");
                return 0;
            }
            enqueue(x);
        }
        else if(op==2){
            processNext();
        }
        else if(op==3){
            printfLoads();
        }
    }
    return 0;
}