Ədalətli Bölüşdürmə
Sizin dostunuzun ad günüdür və siz, bir neçə başqa insanla birlikdə, ona StarCraft II oyununun bir nüsxəsini almağa qərar vermisiniz. Axı kim belə bir hədiyyəni istəməz ki?
Siz xərcləri mümkün qədər ədalətli bölüşdürmək barədə razılığa gəlmisiniz. Bəzilərinizin digərlərindən daha çox pulu olduğu üçün, heç kimin ödəyə biləcəyindən çox ödəməməsi də razılaşdırılıb. Hər bir töhfə 1 sentin tam hissəsi olacaq, yəni heç kim sentin hissələrini ödəyə bilməz.
Hər kəs ödəyə biləcəyi maksimum məbləği yazır. Hər kəsin bu maksimum məbləğlərini nəzərə alaraq, hədiyyənin qiymətini mümkün qədər ədalətli bölüşdürürsünüz. Bu o deməkdir ki, töhfələrin (1/n)-ci hissəsindən ən böyük fərqi minimuma endirirsiniz. Əgər bərabərlik varsa, ikinci ən böyük fərqi minimuma endirirsiniz və s. Töhfənin ən kiçik vahidi 1 sent olduğundan, xərclərin bir neçə mümkün bölüşdürülməsi ola bilər. Bu halda, maksimum məbləği daha çox olan şəxslər daha çox ödəyir. Əgər hələ də qeyri-müəyyənlik varsa, siyahıda birinci olanlar daha çox ödəyir.
Hədiyyəni siz aldığınız üçün, hər kəsin nə qədər ödəməli olduğunu müəyyən etmək sizin vəzifənizdir (siz də daxil olmaqla).
Giriş verilənləri
Birinci sətirdə müsbət tam ədəd: test halların sayı, ən çox 100. Hər test halı üçün:
Bir sətirdə iki tam ədəd p və n: hədiyyənin qiyməti sentlərlə (1 ≤ p ≤ 1000000) və hədiyyəyə töhfə verən insanların sayı (2 ≤ n ≤ 100) (siz də daxil olmaqla).
Bir sətirdə n tam ədəd a_i (1 ≤ a_i ≤ 1000000), burada a_i siyahıda olan i-ci şəxsin töhfə verə biləcəyi maksimum məbləğdir, sentlərlə.
Çıxış verilənləri
Hər test halı üçün:
Bir sətirdə n tam ədəd: hər bir şəxsin sxemə uyğun olaraq ödəməli olduğu məbləğlər. Əgər ümumi xərclər yuxarıdakı qaydalara uyğun bölüşdürülə bilməzsə, sətirdə "IMPOSSIBLE" yazılmalıdır.