#include<bits/stdc++.h>
using namespace std;
inline int read(){
short f=1;int x=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
return x*f;
}
inline void readch(char *str){
int lenn=0;
char c=getchar();
while(c==' '||c=='\n'||c=='\r'){
c=getchar();
}
while(c>='A'&&c<='Z'||c>='a'&&c<='z'||c>='0'&&c<='9'){
str[lenn++]=c;
c=getchar();
if(c==' '||c=='\n'||c=='\r') break;
}
}
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a<b?a:b;}
int swap(int &a,int &b){int c=a;a=b;b=c;}
int n,len,now;
char ch[15];
struct small_put{
int a[500005],len=0;
void put(int x){
len++;
a[len]=x;
int son=len;
while(son>1&&a[son]<a[son>>1]){
swap(a[son],a[son>>1]);
son>>=1;
}
}
int get(){
int now=a[1];
a[1]=a[len];
len--;
int fa=1;
while(1){
int l=fa<<1;
if(l>len) break;
int r=l+1,son;
if(r>len) son=l;
else{
if(a[l]<a[r]) son=l;
else son=r;
}
if(a[son]<a[fa]){
swap(a[fa],a[son]);
fa=son;
}
return now;
}
}
}qs;
struct big_put{
int a[500005],len=0;
void put(int x){
len++;
a[len]=x;
int son=len;
while(son>1&&a[son]>a[son>>1]){
swap(a[son],a[son>>1]);
son>>=1;
}
}
int get(){
int now=a[1];
a[1]=a[len];
len--;
int fa=1;
while(1){
int l=fa<<1;
if(l>len) break;
int r=l+1,son;
if(r>len) son=l;
else{
if(a[l]>a[r]) son=l;
else son=r;
}
if(a[son]>a[fa]){
swap(a[fa],a[son]);
fa=son;
}
}
return now;
}
}qb;
int main(){
n=read();
for(int i=1;i<=n;i++){
readch(ch);
if(ch[0]=='A'){
int k=4,f=1,res=0;
if(ch[k]=='-') f=-1,k++;
while(ch[k]>='0'&&ch[k]<='9'){
res=(res<<3)+(res<<1)+(ch[k]^48);
k++;
}
qs.put(res*f);
}
else{
while(qb.len!=now){
if(qb.len<now) qb.put(qs.get());
else qs.put((qb.get()));
}
while(qb.a[1]>qs.a[1]){
qs.put(qb.get());
qb.put(qs.get());
}
printf("%d\n",qb.a[1]);
now++;
}
}
return 0;
}