문제

스택을 배운 서영이는 직접 스택 프로그램을 구현하고 싶어졌다.

서영이가 설계한 프로그램의 명령어들은 아래와 같다.

push x : 정수 x를 출력하고, 그 수를 스택에 넣는다. (x는 int형 범위 이내의 수이다.)

pop : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

size : 스택에 들어있는 정수의 개수를 출력한다.

empty : 스택이 비어있으면 1, 아니면 0을 출력한다.

top : 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

end : 프로그램을 종료한다.

서영이를 도와 위의 명령어를 수행하는 프로그램을 작성해보자. (유효한 명령어만 주어진다고 한다.)

입력

모든 명령어는 한 줄에 하나씩 입력되며 end를 제외한 명령어의 수는 100,000번을 넘지 않는다. (문제에서 설명한 형식 이외의 입력은 주어지지 않는다.)

또한, end 명령어는 마지막에 단 한번 입력된다.

출력

입력으로 주어진 명령어를 수행한 결과를 한 줄에 하나씩 출력하여라.

예제 1 입력

push 5
push 6
top
size
push 3
top
pop
pop
size
end

예제 1 출력

5
6
6
2
3
3
3
6
1

예제 2 입력

size
empty
empty
top
top
end

예제 2 출력

0
1
1
-1
-1

Source

end = False
stack = []

while(end == False):
	cmd = input().split()

	if(cmd[0] == 'push'):
		print(cmd[1])
		stack.append(cmd[1])
	elif(cmd[0] == 'pop'):
		if(len(stack) == 0):
			print(-1)
		else:
			print(stack.pop())
	elif(cmd[0] == 'size'):
		print(len(stack))
	elif(cmd[0] == 'empty'):
		if(len(stack) == 0):
			print(1)
		else:
			print(0)
	elif(cmd[0] == 'top'):
		if(len(stack) == 0):
			print('-1')
		else:
			print(stack[-1])
	elif(cmd[0] == 'end'):
		end = True