넘치는 책장

시간 제한1초메모리 제한128 MB

문제

고정된 너비의 책장을 시뮬레이션한다. 시간이 지나면서 책을 책장에 넣거나 빼며, 마지막에는 책장에 남아 있는 책을 왼쪽에서 오른쪽 순서로 출력한다.

각 책은 서로 다른 양의 정수 번호 $I$($0 < I \le 100$)로 구분되며, 정수 너비를 가진다. 책장에서는 세 가지 이벤트가 처리된다.

  • 넣기(Add): 새 책을 책장의 왼쪽 끝에 밀어 넣으며, 필요한 만큼 다른 책들을 오른쪽으로 민다. 책은 바로 왼쪽에 맞닿은(접촉한) 책이 밀 때에만 오른쪽으로 움직이고, 밀리지 않은 책은 그대로 있다. 책장 위에 완전히 올라가지 못한 책은 오른쪽 끝으로 떨어져 사라진다. 한 권의 책이 책장보다 넓은 경우는 없으며, 이미 책장에 있는 책을 다시 넣는 일도 없다.
  • 빼기(Remove): 해당 책이 책장에 있으면 빼내고 그 자리에는 빈 공간이 남는다(다른 책들의 위치는 그대로 유지된다). 책장에 없으면 이 이벤트는 무시한다.
  • 끝(End): 현재 시뮬레이션을 끝내고 책장에 남은 책을 왼쪽에서 오른쪽 순서로 출력한다.

입력

입력에는 하나 이상의 시뮬레이션이 들어 있다. $-1$ 만 적힌 줄이 입력의 끝을 나타낸다.

각 시뮬레이션은 책장의 너비 $s$($5 \le s \le 100$)가 적힌 줄로 시작하고, 그 뒤에 한 줄에 하나씩 이벤트가 이어진다.

  • 넣기 이벤트는 대문자 A로 시작하고, 이어서 책 번호, 책의 너비 $w$($0 < w \le s$)가 나온다.
  • 빼기 이벤트는 대문자 R로 시작하고, 이어서 책 번호가 나온다.
  • 이벤트는 대문자 E 하나만 있는 줄이다.

한 이벤트 안에서 각 숫자 앞에는 공백이 정확히 하나씩 있다.

출력

각 시뮬레이션마다 한 줄을 출력한다. 라벨 PROBLEM k:(여기서 $k$는 1부터 시작하는 시뮬레이션 번호)를 먼저 출력하고, 이어서 책장에 남은 책의 번호를 왼쪽에서 오른쪽 순서로, 각 번호 앞에 공백을 하나씩 붙여 출력한다. 책장이 비어 있으면 라벨만 출력한다.