#include <stdio.h>
#define MAX 2000000
 
int size,A[MAX+1];
 
void max(int i)
{
  int l,r,largest,t;
 
  l=2*i;
  r=2*i+1;
  if(l<=size && A[l]>A[i]) largest=l;
  else largest = i;
  if(r<=size&&A[r]>A[largest]) largest = r;
  if(largest != i)
    {
      t=A[i];A[i]=A[largest];A[largest]=t;
      max(largest);
    }
}
 
int extract()
{
  int maxv;
  if(size<1) return 0; 
  maxv=A[1];
  A[1]=A[size--];
  max(1);
  return maxv;
}
 
void increase(int i,int key)
{
  int tmp;
  if(key<A[i]) return;
  A[i]=key;
  while(i>1&&A[i/2]<A[i])
  {
    tmp=A[i];
    A[i]=A[i/2];
    A[i/2]=tmp;
    i=i/2;
  }
}
 
void insert(int key)
{
  size++;
  A[size]=-1000000001;
  increase(size,key);
}
 
int main ()
{
  int key;
  char com[20];
 
  while(1)
  {
    scanf("%s",com);
    if(com[0]=='i')
    {
      scanf("%d",&key);
      insert(key);
    }
    else if (strcmp(com,"extract")==0)
    {
     printf("%d\n",extract());
   }
    else break;
    }
 
  return 0;
}
