//#include <stdio.h>
//struct kk
//{
//
// int w,y,z,n;
//
//};
//struct kk k[10000],ii[10000];
//void swap(int q,int r)
//{
//
// struct kk bb;
// bb=k[q];
// k[q]=k[r];
// k[r]=bb;
//
//}
//void quick_sort(int s,int e)
//{
// int low,high,pivot;
// low=s;
// high=e+1;
// pivot=s;
// if(e<=s)
// return;
// do
// {
// do
// {
// low++;
// }while(k[low].n<k[pivot].n);
// do
// {
// high--;
// }while(k[high].n>k[pivot].n);
// if(low<high)
// swap(low,high);
// }while(high>low);
// swap(pivot,high);
// quick_sort(s,high-1);
// quick_sort(high+1,e);
//}
//int main()
//{
// int a,b,c,d;
// double v;
// scanf("%d %d",&a,&b);
// d=b;
// for(c=0; c<a; c++)
// {
// scanf("%d %d %d",&k[c].w,&k[c].y,&k[c].z);
// k[c].n=(k[c].w*k[c].w)+(k[c].y*k[c].y);
// ii[c]=k[c];
// }
// quick_sort(0,a-1);
// for(c=0;c<a;c++)
// {
// if(d>=1000000)
// {
// break;
// }
// d=d+k[c].z;
// }
// if(d<1000000)
// {
// printf("-1");
// }
// else
// {
// v=(double)k[c-1].n;
// printf("%.3lf",sqrt(v));
// }
//}
#include <stdio.h>
/*
void f(int* pa, int* pb) //call by reference
{
int t=*pa;
*pa =*pb;
*pb =t;
}
void ff(int x, int y) //call by value
{
int t=x;
x=y;
y=t;
}
int main()
{
int a, b;
scanf("%d %d",&a,&b);
ff(a,b);
// f(&a,&b);
printf("%d %d",a,b);
}
//배열의 이름은 배열 시작 원소의 주소이다
// str == &str[0]
void f(char* s,int length)
{
printf("%c",s[3]);
//printf("%s",s);
}
int main()
{
char str[50];
scanf("%s",str);
f(str,strlen(str)-1);
}
*/
/*
#include <stdio.h>
void myswap(int* pa,int* pb)
{
int k=*pa;
if(*pa>*pb)
{*pa=*pb;
*pb=k;}
}
main()
{
int a, b;
scanf("%d%d", &a, &b);
myswap(&a, &b);
printf("%d %d", a, b);
}*/
/*
#include <stdio.h>
void n(char* s,int x,int y)
{
int k;
for(k=y;k<=y+x-1;k++)
{
printf("%c",s[k]);
}
}
int main()
{
char str[100];
int a,b;
gets(str);
scanf("%d %d",&a,&b);
n(str,b,a);
}
#include <stdio.h>
int stack[50]; // Last In First Out
int top=-1; // top : 데이터가 마지막으로 입력된 위치
void push(int data)
{
stack[++top]=data;
}
int pop()
{
return stack[top--];
}
int main()
{
push(1);
push(2);
push(3);
printf("%d",pop());
}
*/
/*
#include <stdio.h>
char stack[1000];
int top=-1;
void push(char n)
{
stack[++top]=n;
}
int pop()
{
return stack[top--];
}
int main()
{
char a[1000];
int b;
gets(a);
for(b=0;b<=strlen(a)-1;b++)
{
push(a[b]);
}
for(b=0;b<=strlen(a)-1;b++)
{
printf("%c",pop());
}
}*/
/*
#include <stdio.h>
char stack[200];
int top=-1;
void push(char k)
{
stack[++top]=k;
}
int pop()
{
return stack[top--];
}
int main()
{
int a,b,c,d;
c=0;
char n[200];
scanf("%d",&a);
scanf("%s",n);
d=a/3;
for(b=a-1; b>=0; b--)
{
if(c==3)
{
push(',');
c=0;
}
c=c+1;
push(n[b]);
}
if(a%3!=0){
for(b=0; b<=a-1+d; b++)
{
printf("%c",pop());
}}
else
{
for(b=0; b<=a-2+d; b++)
{
printf("%c",pop());
}
}
}*/
/*
#include <stdio.h>
int stack[100000];
int top=0;
void push(int k)
{
stack[top++]=k;
}
void del()
{
top--;
}
int main()
{
int a,b,c,d,e;
d=0;
e=0;
scanf("%d",&a);
for(b=0;b<a;b++)
{
scanf("%d",&c);
if(c==0)
{
if(d>0)
{
del();
d=d-1;
}
}
else
{
push(c);
d=d+1;
}
}
for(b=0;b<d;b++)
{
e=e+stack[b];
}
printf("%d",e);
}*/
#include <stdio.h>
int stack[200];
int top=0;
void push(int k)
{
stack[top++]=k;
}
void kop()
{
if(top!=0)
{
printf("%d\n",stack[--top]);
top++;
}
else
printf("-1\n");
}
void pop()
{
if(top!=0) top--;
}
void size()
{
printf("%d\n",top);
}
{
if(top==0)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
int main()
{
int a,b,c,d=0;
c=6;
char l[100];
scanf("%d ",&a);
for(b=0; b<a; b++)
{
gets(l);
if(l[0]=='p'&&l[1]=='u')
{
for(c=6;l[c]!=' ';c++)
{
d=d*10+l[c]-'0';
}
push(d);
d=0;
}
else if(l[0]=='t')
{
kop();
}
else if(l[0]=='p')
{
pop();
}
else if(l[0]=='s')
{
size();
}
else
{
empty();
}
}
}