#include<bits/stdc++.h>
#include <vector>
using namespace std;
void down(int u, vector<int>& a, int mysize) {
    int t = u;
    if (u * 2 <= mysize && a[u * 2] > a[t]) t = u * 2;
    if (u * 2 + 1 <= mysize && a[u * 2 + 1] > a[t]) t = u * 2 + 1;
    if (u != t) {
        swap(a[u], a[t]);
        down(t, a, mysize);
    }
    return;
}
void up(int u, vector<int>& a) {
    int t = u;
    if (u % 2 == 0) {
        if (u / 2 >= 1 && a[u / 2] < a[t]) t = u / 2;
    } else if (u % 2 == 1) {
        if ((u - 1) / 2 >= 1 && a[(u - 1) / 2] < a[t]) t = (u - 1) / 2;
    }
    if (u != t) {
        swap(a[u], a[t]);
        up(t, a);
    }
    return;
}
int main() {
    int n = 0, mysize = 0, x = 0;
    cin >> n;
    vector<int> a(n + 1, 0);
    while (n--) {
        string s;
        cin >> s;
        if (s == "push") {
            cin >> x;
            mysize++;
            a[mysize] = x;
            up(mysize, a);
        } else if (s == "top") {
            if (a[1]) {
                cout << a[1] << endl;
            } else {
                cout << "empty" << endl;
            }
        } else {
            if (a[1]) {
                cout << a[1] << endl;
                swap(a[1], a[mysize]);
                a[mysize] = 0;
                mysize--;
                down(1, a, mysize);
            } else {
                cout << "empty" << endl;
            }
        }
    }


}
// 64 位输出请用 printf("%lld")