import java.io._
import scala.io.StdIn.{readLine,readInt}
import scala.io.Source
import scala.annotation.tailrec

object Main {
  var size = 0
  var count = 0
  val out:BufferedWriter =
    new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FileDescriptor.out), "ASCII"), 512)

  def swap(a:Array[Int],i:Int,j:Int) =  {
    val temp = a(i)
    a(i) = a(j)
    a(j) = temp
  }

  def downHeap(a:Array[Int], i:Int):Unit = {
    var largest = i
    if(i*2 <= size) {
      if(a(i*2-1) > a(i-1)) largest = i*2
      if(i*2+1<=size && a(i*2) > a(largest-1)) largest = i*2+1
      if(largest != i) {
        swap(a,i-1,largest-1)
        downHeap(a,largest)
      }
    }
  }

  def extract(a:Array[Int]):Int = {
    val max = a(0)
    if(size>0) {
      a(0) = a(size-1)
      size -= 1
      downHeap(a,1)
    }
    max
  }

  def upHeap(a:Array[Int], i:Int):Unit = {
    val j = i/2
    if(j>0 && a(j-1) < a(i-1)) { swap(a,j-1,i-1); upHeap(a,j) }
  }

  def insert(a:Array[Int], n:Int) = {
    a(size) = n
    size += 1
    upHeap(a,size)
  }

  def main(args:Array[String]) = {
    val a = new Array[Int](2000000)
    var s = ""
    Source.stdin.getLines.takeWhile(_!="end").foreach { s =>
      val op = s.split(" ")
      if(op(0) == "insert") {
        insert(a, op(1).toInt)
      } else if(op(0) == "extract") {
        val x = extract(a).toString
        out.write(x)
        out.write("\n")
        if(count<100) count += 1
        else {
         out.flush
         count = 0
        }
      }
    }
    out.flush
  }
}