#include<stdio.h>

#define MAX 2000000
#define INFTY 2000000000

int H, A[MAX+1];

void maxHeapify( int i )
{
  int l, r, largest, temp;
  l = 2 * i;
  r = 2 * i + 1;

  if( l <= H && A[l] > A[i] ) largest = l;
  else largest = i;

  if( r <= H && A[r] > A[largest] ) largest = r;

  if( largest != i )
    {
      temp = A[i];
      A[i] = A[largest];
      A[largest] = temp;
      maxHeapify(largest);
    }
}

int extract()
{
  int max_key;

  if( H < 1 ) return -INFTY;
  max_key = A[1];
  A[1] = A[H];
  H--;
  maxHeapify(1);
  return max_key;
}

void increasekey( int i, int key )
{
  int temp;

  if( key < A[i] ) return;
  A[i] = key;
  while( i > 1 && A[i/2] < A[i] )
    {
      temp = A[i];
      A[i] = A[i/2];
      A[i/2] = temp;
      i = i/2;
    }
}

void insert( int key )
{
  H++;
  A[H] = -INFTY;
  increasekey(H,key);
}

int main()
{
  int key;
  char com[10];

  while(1)
    {
      scanf("%s", com);

      if( com[0] == 'e' && com[1] == 'n' ) break;
      if( com[0] == 'i' )
	{
	  scanf("%d", &key);
	  insert(key);
	}
      if( com[0] == 'e' && com[1] == 'x' )
	{
	  printf("%d\n", extract());
	}
    }

  return 0;
}
			      

