#include<stdio.h>
#include<string.h>
#define MAX 2000000

int H,A[MAX+1];

void  swap(int *x, int *y)
{
    int  work;        /* ????\???¨ */

    work = *x;        /* x????????????????????? */
    *x = *y;          /* x?????????y???????????????????????? */
    *y = work;        /* y?????????x???????????????????????? */
}

void maxHeapify(int i) {
  int l,r,largest;
  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){
    swap(&A[i], &A[largest]);
    maxHeapify(largest);
  }
}

int extract() {
  int maxv;
  if(H < 1) return -1;
  maxv = A[1];
  A[1] = A[H--];
  maxHeapify(1);
  return maxv;
}

void increaseKey(int i,int key) {
  if(key < A[i]) return;
  A[i] = key;
  while(i>1&&A[i/2] <A[i]) {
  swap(&A[i],&A[i/2]);
  i = i/2;
  }
}

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

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

  while(1) {
    scanf("%s\n",com );
    if(strcmp(com,"end") == 0) break;
    if(strcmp(com,"insert") == 0){
      scanf("%d\n", &key);
      insert(key);
    } else {
      printf("%d\n",extract() );
    }
  }

  return 0;
}