#include<stdio.h>
#define MAX 200000000
#define INFTY 1000000000

int size, A[MAX+1];

void maxHeapify(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;
    maxHeapify(largest);
  }
}

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

void increaseKey(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] = -INFTY;
	increaseKey(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;
}
