라가도 대학교는 신입생 주간에 맥주 시음회를 연다. 안전을 위해 학교는 학생 한 명이 쓸 수 있는 금액에 상한을 두고, 학생은 그날 밤 마실 알코올의 양을 스스로 정해 둔다.
음료는 1리터, 2분의 1리터, 3분의 1리터 중 한 가지 크기로 나온다. 알코올 1단위는 도수가 1퍼센트인 음료 1리터에 들어 있는 알코올의 양이다. 따라서 도수가 s퍼센트인 음료를 f리터 크기로 마시면 s×f단위를 마신다.
학생은 가진 돈 m을 한 푼도 남기지 않고 전부 쓰면서 알코올을 정확히 u단위 마시려 한다. 더 마셔도 안 되고 덜 마셔도 안 된다. 같은 음료는 몇 잔이든 살 수 있고, 한 잔도 사지 않아도 된다. 이런 구매가 가능한지 판정하고, 가능하면 무엇을 몇 잔 사야 하는지 출력하라.
첫째 줄에 세 값이 주어진다.
다음 d개 줄에는 각각 네 값이 공백 하나로 구분되어 주어진다.
1/1, 2분의 1리터면 1/2, 3분의 1리터면 1/3.돈을 정확히 m만큼 쓰면서 알코올을 정확히 u단위 마시는 방법이 없으면 첫째 줄에 IMPOSSIBLE을 출력한다.
방법이 있으면 산 음료마다 한 줄씩, 입력에 나온 순서대로 이름과 산 잔 수를 공백 하나로 구분해 출력한다. 한 잔도 사지 않은 음료는 출력하지 않는다.
가능한 방법이 여러 가지일 수 있다. 입력의 i번째 음료를 산 잔 수를 ci라 하고 한 가지 방법을 수열 (c1,c2,…,cd)로 나타낼 때, 사전순으로 가장 앞서는 방법을 출력한다. 즉 c1이 가장 작은 방법을 고르고, 그중에서 c2가 가장 작은 방법을 고르고, 이런 식으로 끝까지 정한다.
m이 0.01 이상이므로 방법이 존재하면 적어도 한 잔은 사게 되고, 출력이 비는 일은 없다.