#include <bits/stdc++.h>
using namespace std;
struct elKolejki {
int wart;
elKolejki* wsk;
};
struct kolejka {
elKolejki* poczatek;
elKolejki* koniec;
int rozmiar;
kolejka() {
poczatek = NULL;
koniec = NULL;
rozmiar = 0;
}
void push(int x) {
elKolejki* nowy = new elKolejki;
nowy->wart = x;
nowy->wsk = NULL;
if (rozmiar == 0) {
poczatek = koniec = nowy;
} else {
koniec->wsk = nowy;
koniec = nowy;
}
rozmiar++;
}
int front() {
return poczatek->wart;
}
void pop() {
if (rozmiar == 0)
return;
elKolejki* tmp = poczatek;
poczatek = poczatek->wsk;
delete tmp;
rozmiar--;
if (rozmiar == 0) {
koniec = NULL;
}
}
int size() {
return rozmiar;
}
};
int main() {
kolejka q;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
char a;
cin >> a;
if (a == '+') {
int x;
cin >> x;
q.push(x);
}
if (a == '-') {
cout << q.front() << endl;
q.pop();
}
if(a == '='){
cout << q.size() << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgZWxLb2xlamtpIHsKICAgIGludCB3YXJ0OwogICAgZWxLb2xlamtpKiB3c2s7Cn07CgpzdHJ1Y3Qga29sZWprYSB7CiAgICBlbEtvbGVqa2kqIHBvY3phdGVrOwogICAgZWxLb2xlamtpKiBrb25pZWM7CiAgICBpbnQgcm96bWlhcjsKICAgIAogICAga29sZWprYSgpIHsKICAgICAgICBwb2N6YXRlayA9IE5VTEw7CiAgICAgICAga29uaWVjID0gTlVMTDsKICAgICAgICByb3ptaWFyID0gMDsKICAgIH0KCiAgICB2b2lkIHB1c2goaW50IHgpIHsKICAgICAgICBlbEtvbGVqa2kqIG5vd3kgPSBuZXcgZWxLb2xlamtpOwogICAgICAgIG5vd3ktPndhcnQgPSB4OwogICAgICAgIG5vd3ktPndzayA9IE5VTEw7CiAgICAgICAgCiAgICAgICAgaWYgKHJvem1pYXIgPT0gMCkgewogICAgICAgICAgICBwb2N6YXRlayA9IGtvbmllYyA9IG5vd3k7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAga29uaWVjLT53c2sgPSBub3d5OwogICAgICAgICAgICBrb25pZWMgPSBub3d5OwogICAgICAgIH0KICAgICAgICByb3ptaWFyKys7CiAgICB9CgogICAgaW50IGZyb250KCkgewogICAgICAgIHJldHVybiBwb2N6YXRlay0+d2FydDsKICAgIH0KCiAgICB2b2lkIHBvcCgpIHsKICAgICAgICBpZiAocm96bWlhciA9PSAwKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGVsS29sZWpraSogdG1wID0gcG9jemF0ZWs7CiAgICAgICAgcG9jemF0ZWsgPSBwb2N6YXRlay0+d3NrOwogICAgICAgIGRlbGV0ZSB0bXA7CiAgICAgICAgcm96bWlhci0tOwogICAgICAgIGlmIChyb3ptaWFyID09IDApIHsKICAgICAgICAgICAga29uaWVjID0gTlVMTDsKICAgICAgICB9CiAgICB9CgogICAgaW50IHNpemUoKSB7CiAgICAgICAgcmV0dXJuIHJvem1pYXI7CiAgICB9Cn07CgppbnQgbWFpbigpIHsKICAgIGtvbGVqa2EgcTsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNoYXIgYTsKICAgICAgICBjaW4gPj4gYTsKCiAgICAgICAgaWYgKGEgPT0gJysnKSB7CiAgICAgICAgICAgIGludCB4OwogICAgICAgICAgICBjaW4gPj4geDsKICAgICAgICAgICAgcS5wdXNoKHgpOwogICAgICAgIH0KICAgICAgICBpZiAoYSA9PSAnLScpIHsKICAgICAgICAgICAgY291dCA8PCBxLmZyb250KCkgPDwgZW5kbDsKICAgICAgICAgICAgcS5wb3AoKTsKICAgICAgICB9CiAgICAgICAgaWYoYSA9PSAnPScpewogICAgICAgIAljb3V0IDw8IHEuc2l6ZSgpIDw8IGVuZGw7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=