//queue FIFO
//heap (우선순위 queue)
/*
front : 마지막으로 나간 데이터의 위치
rear : 마지막으로 입력된 데이터의 위치 (=top) back
enqueue (enq) push
rear++;
queue[rear]=data;
dequeue(deq) pop
front++;
return queue[front];
empty?? front==rear
*/
#include <stdio.h>
#include <string.h>
int front=-1,back=-1,queue[201]={};
void push(int data){
queue[++back]=data;
}
int pop(){
if(front==back) return 0;
return queue[++front];
}
int main(){
int n,i=0,a;
char c[100]={};
scanf("%d ",&n);
for(;n>0;n--){
gets(c);
if(c[0]=='p'&&c[1]=='u'){
for(i=6,a=0;c[i]!=' ';i++){
a=(a*10)+(c[i]-48);
}
push(a);
}
else if(c[0]=='p'&&c[1]=='o'){
pop();
}
// else{
// printf("queue : ");
// for(int j=front+1;j<=back;j++) printf("%d ",queue[j]);
// printf("\n");
// }
if(c[0]=='f'){
if(front==back) printf("-1\n");
else printf("%d\n",queue[front+1]);
}
if(c[0]=='b'){
if(front==back) printf("-1\n");
else printf("%d\n",queue[back]);
}
if(c[0]=='s'){
printf("%d\n",back-front);
}
if(c[0]=='e'){
if(front==back) printf("true\n");
else printf("false\n");
}
}
}