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:
			{
				
			}

		}

	}
}