생일 선물

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

문제

오늘은 선영이의 생일이고, 친구들은 선영이에게 스타크래프트 II를 생일 선물로 사 주기로 했다.

친구들은 선물 값을 공정하게 나누어 내기로 했다. 다만 형편이 저마다 다르므로, 누구도 자신이 낼 수 있는 최대 금액보다 많이 내지는 않는다. 모든 사람은 1원 단위의 정수 금액만 낼 수 있으며(분수 금액은 낼 수 없다), 적어도 1원은 내야 한다.

선물 값이 $p$이고 친구가 $n$명일 때, 한 사람의 공정한 몫은 $p / n$이다. 공정하게 나누기 위해, 각 사람이 낸 금액과 $p / n$의 차이 중 최댓값을 최소로 만든다. 이렇게 해도 여러 방법의 최댓값이 같다면 그다음으로 큰 차이를 최소로 하고, 또 같다면 그다음 차이를 최소로 하는 식으로 계속한다.

각 사람은 최소 1원만 내면 되므로 위 조건을 만족하는 분배 방법이 여러 가지일 수 있다. 이 경우에는 더 많은 금액을 낼 수 있는 사람(최대 금액이 큰 사람)이 더 많이 낸다. 그래도 방법이 여러 가지이면 목록에서 앞에 있는 사람이 더 많이 낸다.

각 친구가 낼 수 있는 최대 금액과 선물 값이 주어질 때, 각 사람이 내야 하는 금액을 구하는 프로그램을 작성하시오. 선물 값을 정확히 모을 수 있는 방법이 전혀 없다면 대신 IMPOSSIBLE을 출력한다.

입력

첫째 줄에 테스트 케이스의 개수 $T$가 주어진다. ($1 \le T \le 100$)

각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 선물 값 $p$와 친구의 수 $n$이 공백으로 구분되어 주어진다. ($1 \le p \le 1{,}000{,}000$, $2 \le n \le 100$) 둘째 줄에는 각 친구가 낼 수 있는 최대 금액 $a_1, a_2, \dots, a_n$이 공백으로 구분되어 주어진다. ($1 \le a_i \le 1{,}000{,}000$)

출력

각 테스트 케이스마다 한 줄에, 각 사람이 내야 하는 금액을 입력에 주어진 순서대로 공백으로 구분하여 출력한다. 선물 값을 공정하게 모을 수 있는 방법이 없다면 그 줄에 IMPOSSIBLE을 출력한다.