import java.io._
import scala.io.Source

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

  def up(a:Array[Long], i:Int) = {
    var (j,k) = (i-1,(i+1)/2-1)
    var temp = a(j)

    while(k > -1 && temp>a(k)) {
      a(j) = a(k)
      j = k; k = (k+1)/2-1
    }
    a(j) = temp
  }

  def down(a:Array[Long], i:Int, temp:Long):Unit = {
    var largest = i
    val j = (i+1)*2
    if(j>size) a(i) = temp
    else {
       val max = if(a(j-1) > a(j)) j-1 else j
       if(a(max)>temp) { a(i) = a(max); down(a,max,temp) }
       else a(i) = temp
    }
  }

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

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


  def main(args:Array[String]) = {
    val a = new Array[Long](2000000)
    var s = ""
    Source.stdin.getLines.takeWhile(_!="end").foreach { s =>
      val op = s.split(" ")
      if(op(0) == "insert") {
        insert(a, op(1).toLong)
      } 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
  }
}