당신은 시간당 100개의 상자를 분류하는 일을 합니다. 각 상자는 빨간색, 파란색, 녹색 중 하나의 색상을 가집니다. 상자는 슬롯을 통해 들어오므로, 앞으로 어떤 상자가 올지 미리 알 수 없습니다. 당신은 가능한 한 많은 상자를 집으로 가져가고 싶지만, 상자를 보관할 수 있는 통은 두 개뿐입니다. 안타깝게도 통의 용량에는 제한이 없지만, 서로 다른 색상의 상자를 같은 통에 담을 수는 없습니다.
다행히 동료가 상자 색상의 분포를 알려주었지만, 구체적인 색상은 알려주지 않았습니다. 당신이 아는 것은 합이 100이 되는 세 정수뿐입니다. 상자를 받으면 세 가지 행동을 할 수 있습니다. 첫째, 두 통 중 하나를 비워 그 안에 있는 모든 상자를 버릴 수 있습니다. 그 후, 비어 있거나 해당 색상의 상자만 들어 있는 통에 상자를 넣을 수 있습니다. 또는, 현재 상자를 그냥 버릴 수도 있습니다.
이 상자들은 가치가 있다고 생각되므로, 가능한 한 많이 보관하고 싶습니다. 당신은 총 $T = 100$ 시간 동안 상자를 수집하게 됩니다. 매 시간마다 두 개의 빈 통으로 시작합니다. 매 시간 끝에 100개의 상자 중 최소 43개를 수집할 수 있습니까?
각 테스트에서 상자의 순서는 무작위가 아니며, 대회가 시작되기 전에 미리 고정되어 있습니다.
인터랙션
먼저 당신이 일할 시간의 수인 정수 $T$가 주어집니다. 이 문제의 모든 테스트에서 $T = 100$입니다.
당신이 일하는 매 시간마다, 어떤 색상의 상자가 $A$개, 다른 색상의 상자가 $B$개, 나머지 색상의 상자가 $C$개 있음을 나타내는 세 정수 $A, B, C$가 주어집니다. $0 \le A, B, C \le 100$이고 $A + B + C = 100$임이 보장됩니다.
그 후, 한 시간의 작업이 시작됩니다. 현재 상자의 색상을 나타내는 "R", "G", "B" 중 하나의 문자가 주어집니다. 그런 다음 "EMPTY 1" 또는 "EMPTY 2"를 사용하여 통을 비울 수 있습니다. 통은 원하는 만큼 여러 번 비울 수 있습니다. 그 후, 상자를 넣을 통 번호 $x$를 지정하여 "PLACE $x$"를 출력하거나, "DISCARD"를 출력하여 현재 상자를 버릴 수 있습니다. 어떤 경우든, 각 줄을 출력한 후에는 줄 바꿈 문자를 출력하고 출력을 비워야(flush) 합니다.
잘못된 명령을 출력하거나 서로 다른 색상의 상자 두 개를 한 통에 넣으면, 정수 -1이 주어집니다. 이 시점에서 프로그램은 종료되어야 하며, 이후 "Wrong Answer" 결과를 받게 됩니다.
예제
입력 1
1 5 2 3 G G B B G G R G B R
출력 1
PLACE 2 PLACE 1 EMPTY 1 PLACE 1 EMPTY 2 EMPTY 1 PLACE 2 DISCARD DISCARD PLACE 1 DISCARD PLACE 2 PLACE 1
참고
예제 인터랙션은 유효한 교환을 보여주지만, $T = 1$이고 $A + B + C = 10$이므로 문제의 제약 조건을 따르지 않습니다. 이는 실제 테스트 케이스에는 나타나지 않습니다.