Bajtek uwielbia żelki. W nowo otwartym sklepie (który sprzedaje tylko żelki) można zakupić ich aż n rodzajów – i-ty z tych rodzajów opisany jest kolorem żelka, jego wagą w bajtogramach oraz ceną w bajtogroszach. Żelki sprzedawane są pojedynczo. Kolory żelków oznaczamy liczbami od 1 do k. W sklepie dostępna jest nieograniczona liczba żelków każdego rodzaju.
Bajtek poza żelkami uwielbia estetykę kolorystyczną. Pozwoli on sobie kupić jakiś multizbiór żelków tylko i wyłącznie wtedy, gdy dla każdego koloru od 1 do k kupi dokładnie tyle samo żelków.
Bajtek poza żelkami i estetyką kolorystyczną uwielbia liczby. Dla każdej liczby całkowitej r z przedziału [0, m − 1] zastanawia się on, ile co najmniej bajtogroszy musiałby wydać, aby kupić multizbiór żelków, w którym sumaryczna ich masa po podzieleniu przez m daje resztę r. Pomóż mu i napisz program, który policzy za niego szukane wartości!
W pierwszym wierszu standardowego wejścia znajdują się trzy liczby całkowite n, k i m (1 ≤ n, k, m ≤ 7 000), oznaczające odpowiednio liczbę sprzedawanych rodzajów żelków, liczbę kolorów żelków oraz opisaną wartość m.
W każdym z kolejnych n wierszy znajdują się po trzy liczby całkowite. Liczby w i-tym z tych wierszy to kolejno ki, mi oraz ci (1 ≤ ki ≤ k; 1 ≤ mi ≤ m; 1 ≤ ci ≤ 109) – odpowiednio kolor, masa w bajtogramach i cena w bajtogroszach żelków i-tego rodzaju.
Na wyjściu powinno znaleźć się m wierszy. W i-tym z nich powinna znaleźć się jedna liczba całkowita – minimalna sumaryczna cena multizbioru żelków, który Bajtek może kupić i w którym sumaryczna masa żelków w bajtogramach po podzieleniu przez m daje resztę i−1. Jeśli taki multizbiór nie istnieje, zamiast tego w tym wierszu powinna znaleźć się liczba −1.
Wyjaśnienie przykładu: W pierwszym teście przykładowym:
W drugim teście przykładowym nie są dostępne żadne żelki drugiego koloru – jedynym rozwiązaniem zadowalającym Bajtka jest niekupienie żadnych żelków.