package main

var (
	stack    []int
	stackMin []int
)

func Push(node int) {
	// write code here
	stack = append(stack, node)

	if len(stackMin) == 0 {
		stackMin = append(stackMin, node)

		return
	}

	if top := stackMin[len(stackMin)-1]; top > node {
		stackMin = append(stackMin, node)
	} else {
		stackMin = append(stackMin, top)
	}

	return
}
func Pop() {
	// write code here
	stack = stack[:len(stack)-1]
	stackMin = stackMin[:len(stackMin)-1]
}
func Top() int {
	// write code here
	return stack[len(stack)-1]
}
func Min() int {
	// write code here
	return stackMin[len(stackMin)-1]
}