기억을 잃는 스택
Time Limit: 1 SecMemory Limit: 1024 MiB

문제

다음 연산을 지원하는 스택을 구현해 보자. 초기 시각은 이며, 시간은 add_time 연산으로만 흐른다.

  • push : 정수 를 스택의 맨 위에 넣는다. 이 스택은 기억을 잃는 성질이 있다. 현재 시각이 라면, 이 연산으로 넣은 원소는 현재 시각이 이상이 되는 순간 스택에서 사라진다. (; ; 는 정수)
  • pop: 현재 시각에 스택에 남아 있는 원소 중 맨 위의 원소를 제거하고 그 값을 출력한다. 현재 시각에 스택에 남아 있는 원소가 없다면 -1을 출력한다.
  • add_time : 현재 시각이 만큼 증가한다. 현재 시각에 이미 사라져야 하는 원소들은 pop 연산을 수행하기 전에 모두 사라진다. (; 는 정수)

초기 시각에 스택은 비어 있다. 회의 연산이 주어졌을 때, pop 연산이 주어질 때마다 제거되는 정수 또는 -1을 출력하자.

입력

첫 번째 줄에는 연산의 횟수 이 주어진다. ()

이어서 개의 줄에 걸쳐, 연산이 한 줄에 하나씩 주어진다.

출력

pop 연산이 주어질 때마다 제거되는 정수 또는 -1을 한 줄에 하나씩 출력한다.

노트

오버플로우에 조심하자.

Example Input 1
8
push 2 3
push 5 5
push 7 1
add_time 1
pop
add_time 1
pop
pop
Example Output 1
5
2
-1
Language-Specific Restrictions