/*
#include<stdio.h>
int main()
{
int n, i, c=5;
scanf("%d", &n);
for(i=1; i<n; i++){
c+=(i+2)*2+i;
}
printf("%d", c);
}
*/
#include<stdio.h>
#include<string.h>
int queue[201]={};
int top=-1;
int back=-1;
void push(int data)
{
back++;
queue[back]=data;
// printf("%d\n", data);
int a=back;
for(int i=0; i<a-top; i++){
if(back==0){
break;
}
if(queue[a-1]<data){
int temp=queue[a-1];
queue[a-1]=data;
queue[a]=temp;
a--;
}
else{
break;
}
}
}
int pop()
{
if(back==top){
return -1;
}
top++;
return queue[top];
}
int main()
{
int n, i, j, c=0;
char str[200][201]={};
scanf("%d\n", &n);
for(i=0; i<n; i++){
gets(str[i]);
}
for(i=0; i<n; i++){
if(str[i][0]=='p'&&str[i][1]=='u'){
for(j=6; str[i][j]!=' '; j++){
c=c*10+(str[i][j]-'0');
}
push(c);
c=0;
}
else if(str[i][0]=='t'){
if(top==back){
printf("-1\n");
}
else{
printf("%d\n", queue[top+1]);
}
}
else if(str[i][0]=='p'){
pop();
}
else if(str[i][0]=='s'){
printf("%d\n", back-top);
}
else{
if(top==back){
printf("true\n");
}
else{
printf("false\n");
}
}
}
}
#include<stdio.h>
int arr[4]={}, n;
int a()
{
}
int main()
{
scanf("%d", &n);
a()
}