#include<stdio.h>
#include<string.h>
#define max 2000001
void extmax(int *,int,int);
void BUILDMaxHeap(int *,int);
void insert(int *,int,int);
int main(void){
    int S[max];
    int cnt=0;
    int key;
    char cmd[10];
     
    while(1){
        scanf("%s",cmd);
        if(cmd[0]=='i'){
            scanf("%d",&key);
            insert(S,key,++cnt);
        }
	    else if(cmd[0]=='e' && cmd[1]=='x'){
            printf("%d\n",S[1]);
            S[1]=S[cnt--];
            extmax(S,1,cnt);
        }
        else break;
    }
    return 0;
}

void extmax(int *S,int i,int h){
    int l=i*2;
    int r=l+1,temp;
    int lar=i;
     
    if(l<=h && S[l]>S[i])lar=l;
    if(r<=h && S[r]>S[lar])lar=r;
     
    if(lar!=i){
        temp=S[i];
        S[i]=S[lar];
        S[lar]=temp;
        extmax(S,lar,h);
    }
}
 
void BUILDMaxHeap(int *S,int h){
    int i;
	for(i=h/2;i>0;i--) {
		extmax(S,i,h);
	}
}
 
void insert(int *S,int key,int cnt){
    S[cnt]=key;
    int chd=cnt,temp;
    int par=chd/2;
    while(par>0){
        if(S[par]<S[chd]){
            temp=S[chd];
            S[chd]=S[par];
            S[par]=temp;
        }
        chd=par;
        par=chd/2;
    }
}
