#include <iostream>
#include <map>
#include <vector>
#include <queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t;
cin >> t;
queue < int > q;
priority_queue < int ,vector<int> , greater<> > pq;
while (t--) {
int opt;
cin >> opt;
if (opt == 1) {
int x;
cin >> x;
q.push(x);
}
else if (opt == 2) {
if (!pq.empty()) {
cout << pq.top() << endl;
pq.pop();
}
else if (!q.empty()) {
cout << q.front() << endl;
q.pop();
}
}
else if (opt == 3) {
while (!q.empty()) {
pq.push(q.front());
q.pop();
}
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBjb3V0LnRpZShOVUxMKTsKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICBxdWV1ZSA8IGludCA+IHE7CiAgICBwcmlvcml0eV9xdWV1ZSA8IGludCAsdmVjdG9yPGludD4gLCBncmVhdGVyPD4gPiBwcTsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBpbnQgb3B0OwogICAgICAgIGNpbiA+PiBvcHQ7CiAgICAgICAgaWYgKG9wdCA9PSAxKSB7CiAgICAgICAgICAgIGludCB4OwogICAgICAgICAgICBjaW4gPj4geDsKICAgICAgICAgICAgcS5wdXNoKHgpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChvcHQgPT0gMikgewogICAgICAgICAgICBpZiAoIXBxLmVtcHR5KCkpIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgcHEudG9wKCkgPDwgZW5kbDsKICAgICAgICAgICAgICAgIHBxLnBvcCgpOwoKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICghcS5lbXB0eSgpKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8IHEuZnJvbnQoKSA8PCBlbmRsOwogICAgICAgICAgICAgICAgcS5wb3AoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChvcHQgPT0gMykgewogICAgICAgICAgICB3aGlsZSAoIXEuZW1wdHkoKSkgewogICAgICAgICAgICAgICAgcHEucHVzaChxLmZyb250KCkpOwogICAgICAgICAgICAgICAgcS5wb3AoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0K