package main
import (
"fmt"
"bufio"
"os"
)
type stack struct{
val []int
size int
}
func initStack()stack{
s := make([]int,0)
return stack{
val: s,
size: 0,
}
}
func (this *stack)push(x int){
this.size++
this.val = append(this.val, x)
}
func (this *stack)pop(){
if this.size==0{
fmt.Println("Empty")
}else{
this.size--
this.val=this.val[:this.size]
}
}
func (this *stack)query(){
if this.size==0{
fmt.Println("Empty")
}else{
fmt.Println(this.val[this.size-1])
}
}
func (this *stack)sizeof(){
fmt.Println(this.size)
}
func main() {
reader := bufio.NewReader(os.Stdin)
var n, x int
var str string
fmt.Fscan(reader, &n)
stackExample := initStack()
for i := 0; i < n; i++ {
fmt.Fscan(reader, &str)
switch str {
case "push":
{
fmt.Fscan(reader, &x)
stackExample.push(x)
}
case "pop":
{
stackExample.pop()
}
case "query":
{
stackExample.query()
}
case "size":
{
stackExample.sizeof()
}
default:
{
}
}
}
}