#include<iostream>#include<stack>usingnamespace std;constint N =1e5+10;int a[N];
stack<int> s;intlowbit(int x){return x &-x;}voidadd(int x,int y){for(int i = x; i < N; i +=lowbit(i))
a[i]+= y;}intsum(int x){int ans =0;for(int i = x; i >=1; i -=lowbit(i))
ans += a[i];return ans;}intmain(){int n, x;
cin >> n;while(n--){
string s1;
cin >> s1;if(s1 =="Push"){
cin >> x;add(x,1);
s.push(x);}elseif(s1 =="Pop"){if(s.empty())
cout <<"Invalid"<< endl;else{
cout << s.top()<< endl;add(s.top(),-1);
s.pop();}}else{if(s.empty())
cout <<"Invalid"<< endl;else{int l =1, r = N, m =(s.size()+1)/2, ans;while(l <= r){int mid =(l + r)/2;if(sum(mid)< m)
l = mid +1;else{
ans = mid;
r = mid -1;}}
cout << ans << endl;}}}}