#include <stdio.h>
#define M 2000000

int a,in[M+1];


void Max_retu(int x){
  int R,L,change,s;
  L=2*x;
  R=2*x+1;
  
  if(L<=a && in[x]<in[L]){
    s=L;
  }
  else s=x;
  if(R<=a && in[s]<in[R]){
    s=R;
  }
  if(s!=x){
    change=in[x];
    in[x]=in[s];
    in[s]=change;
    Max_retu(s);
  }
}

int ext(){
  int x;
  x=in[1];
  in[1]=in[a--];
  Max_retu(1);
  return x;
}


void inc(int k){
  int c,x;
  x=a;
  in[x]=k;
  while(x>1 && in[x/2]<in[x]){
    c=in[x];
    in[x]=in[x/2];
    in[x/2]=c;
    x=x/2;
  }
}

int main(){
  int k;
  char order[10];

  while(1){
    scanf("%s",order);
    if(order[0]=='i'){
      scanf("%d",&k);
      a++;
      inc(k);
    }
    else if(order[1]=='x'){
      printf("%d\n",ext());
    }
    else break;
  }
return 0;
}

