#include<bits/stdc++.h>
using namespace std;
const int MAXN=100003;
#define lowbit(i) ((i)&(-i))
int c[MAXN]={};//记录元素x出现的次数
void update(int x,int v){//实时更新
for(int i=x;i<MAXN;i+=lowbit(i)){
c[i]+=v;
}
}
int getsum(int x){
int sum=0;
for(int i=x;i>0;i-=lowbit(i)){
sum+=c[i];
}
return sum;
}
void findkth(int k){
int l=0;int r=MAXN;int mid;
while(l<r){
mid=(l+r)/2;
if(getsum(mid)>=k){
r=mid;
}else{
l=mid+1;
}
}
cout<<l<<endl;
}
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);
#endif
int n;
cin>>n;vector<int> ppp,ttt;
for(int i=0;i<n;i++){
string temp;cin>>temp;
if(temp[1]=='u'){
int t;cin>>t;ppp.push_back(t);
update(t,1);
}else if(temp[1]=='o'){
if(ppp.size()>0){
cout<<ppp[ppp.size()-1]<<endl;
update(ppp[ppp.size()-1],-1);
ppp.pop_back();
}else{
cout<<"Invalid"<<endl;
}
}else if(temp[1]=='e'){
if(ppp.size()>0){
findkth((ppp.size()+1)/2);
}else{
ttt.clear();
cout<<"Invalid"<<endl;
}
}
}
return 0;
}