import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class algo3_10828_stack {
private static BufferedReader reader;
private static StringTokenizer tokenizer;
private static StringBuilder strBuilder;
private static int N, stackSize = 0;
private static int[] stackArr;
public static void main(String[] args) throws NumberFormatException, IOException {
reader = new BufferedReader(new InputStreamReader(System.in));
strBuilder = new StringBuilder();
N = Integer.parseInt(reader.readLine());
stackArr = new int[N];
for(int i=0 ; i<N ; i++){
stack(reader.readLine());
}
System.out.println(strBuilder);
}
public static void stack(String command){
tokenizer = new StringTokenizer(command);
switch(tokenizer.nextToken()){
case "push":
push(Integer.parseInt(tokenizer.nextToken()));
break;
case "pop":
strBuilder.append(pop() + "\n");
break;
case "size":
strBuilder.append(size() + "\n");
break;
case "empty":
if(empty())
strBuilder.append("1\n");
else
strBuilder.append("0\n");
break;
case "top":
strBuilder.append(top() + "\n");
break;
default:
break;
}
}
public static void push(int num){
stackArr[++stackSize] = num;
}
public static int pop(){
int num = -1;
if(stackSize == 0)
return num;
else{
num = stackArr[stackSize];
stackArr[stackSize--] = 0;
return num;
}
}
public static int size(){
return stackSize;
}
public static boolean empty(){
if(stackSize == 0)
return true;
else
return false;
}
public static int top(){
if(stackSize == 0)
return -1;
else
return stackArr[stackSize];
}
}