Banknoty

Limit pamięci: 64 MB

Bajtocki Bank Bitowy (w skrócie BBB) ma największą w Bajtocji sieć bankomatów. BBB postanowił usprawnić swoje bankomaty i zwrócił się do Ciebie o pomoc. Środkiem płatniczym w Bajtocji są banknoty o nominałach . BBB postanowił, że bankomaty powinny wypłacać żądaną kwotę w jak najmniejszej łącznej liczbie banknotów.

Zadanie

Napisz program, który:

  • wczyta ze standardowego wejścia opis zapasu banknotów, które posiada bankomat, oraz kwotę do wypłacenia,
  • obliczy minimalną łączną liczbę banknotów, za pomocą jakiej bankomat może wypłacić żądaną kwotę, oraz znajdzie pewien sposób jej wypłacenia,
  • wypisze wynik na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajduje się liczba nominałów , . Drugi wiersz zawiera liczb całkowitych , , pooddzielanych pojedynczymi odstępami. Trzeci wiersz zawiera liczb całkowitych , , pooddzielanych pojedynczymi odstępami; jest liczbą banknotów o nominale znajdujących się w bankomacie. W ostatnim, czwartym wierszu wejścia znajduje się jedna liczba całkowita - kwota, którą bankomat ma wypłacić, . Możesz założyć, dla danych testowych, że kwotę można wypłacić za pomocą dostępnych banknotów.

Wyjście

Pierwszy wiersz wyjścia powinien zawierać jedną dodatnią liczbę całkowitą równą minimalnej łącznej liczbie banknotów, za pomocą których bankomat może wypłacić kwotę . Drugi wiersz wyjścia powinien zawierać liczb całkowitych, oddzielonych pojedynczymi odstępami i oznaczających liczby sztuk poszczególnych banknotów użytych do wypłacenia kwoty . W przypadku, gdy istnieje więcej niż jedno rozwiązanie, program powinien wypisać którekolwiek.

Przykład

Dla danych wejściowych:

3
2 3 5
2 2 1
10

poprawną odpowiedzią jest:

3
1 1 1

Autor zadania: Bartosz Walczak.