#include<stdio.h>

#define MAX 2000000
#define INFTY (1<<30)

int H,A[MAX+1];
int temp;

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 ){
		temp = A[i];
		A[i] = A[largest];
		A[largest] = temp;
		maxHeapify(largest);
	}
}

int extract(){
	int maxv;
	if( H < 1 ) return -INFTY;
	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] ){
		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( void ){
	
	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);
		}else{
			printf( "%d\n" , extract() );
		}
	}
	
	return 0;
}
