#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 2000001

int H;

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

int parent(int i) { return i / 2;}

int heapIncreaseKey(int A[], int i, int key) {
    int tmp;
    if (key < A[i]) return -1;
    
    A[i] = key;
    while (i > 1 && A[parent(i)] < A[i]) {
	tmp = A[i]; A[i] = A[parent(i)]; A[parent(i)] = tmp;
	i = parent(i);
    }
}

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

int heapExtractMax(int A[]) {
    if (H < 1) return -1;
    
    int max = A[1];
    A[1] = A[H];
    H--;
    maxHeapify(A, 1);

    return max;
}


int main() {
    int flag,key,max, len;
    char str[10];

    int *A;
    A = malloc(sizeof(int) * MAX);
    flag=1; 
    H=0;
    while(1){
	scanf("%s", str);
	len = strlen(str);
	if(len == 3) {
	    break;
	}
	else if (len == 6) {
	    scanf("%d", &key);
	    insert(A, key);
	}
	else if(len == 7) {
	    max = heapExtractMax(A);
	    printf("%d\n", max);
	}
      
    }

    return 0;
}