#include <bits/stdc++.h>
using namespace std;
priority_queue<int> q;//开个stl大根堆

void show()//输出队首元素
{
    if(q.empty())cout << "empty" << endl;
    else cout << q.top() << endl;
}

int main()
{
    int n;cin >> n;
    for(int i=1;i<=n;i++)//循环n次输入
    {
        string s;cin >> s;
        if(s=="push")//根据字符串模拟一下就行
        {
            int x;cin >> x;
            q.push(x);
        }
        else if(s=="top")
        {
            show();
        }
        else if(s=="pop")
        {
            show();
            if(!q.empty())q.pop();
        }
    }
    //注意pop和输出top的时候要判断一下堆是否为空
    return 0;
}