/*#include <stdio.h>
#include <string.h>
int top=0;
int main()
{
char n[100001]={};
int i,sum=0;
scanf("%s",n);
for(i=0;n[i]!=NULL;i++)
{
if(n[i]=='(' && n[i+1]=='(')
{
top++;
}
else if(n[i]==')' && n[i-1]==')')
{
sum++;
top--;
}
else if(n[i]=='(' && n[i+1]==')')
{
sum+=top;
}
}
printf("%d",sum);
}
*/
#include <stdio.h>
#include <string.h>
int stack[201]={};
int top=-1;
void push(int a)
{
top++;
stack[top]=a;
}
void pop()
{
if(top==-1)
{
return ;
}
top--;
}
int main()
{
char str[201]={};
int a,i,num=0;
scanf("%d\n",&a);
for(i=1;i<=a;i++)
{
gets(str);
if(str[0]=='t')
{
///top() : 스택의 top 포인터가 가리키는 값을 출력한다. 만약 원소가 없다면 -1을 출력한다.
if(top==-1)
{
printf("-1\n");
}
else
{
printf("%d\n",stack[top]);
}
}
else if(str[0]=='e')
{
///empty() : 스택이 비어있으면 true, 비어 있지 않으면 false 를 출력한다.
if(top==-1)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
else if(str[0]=='s')
{
///size() : 스택안의 원소 개수를 출력한다.
printf("%d\n",top+1);
}
else if(str[0]=='p' && str[1]=='u')
{
///( x ) : x를 스택에 넣는다.(x는 정수) 괄호와 x사이에 공백이 반드시 존재한다.
num=0;
for(int j=6;str[j]!=' ';j++)
{
num=num*10+str[j]-48;
}
push(num);
}
else if(str[0]=='p' && str[1]=='o')
{
///pop() : 스택의 마지막에 들어온 원소를 삭제한다.
pop();
}
}
}