Klocki
Limit pamięci: 64 MB
Bajtek dostał na urodziny komplet drewnianych klocków.
Klocki są nierozróżnialne, mają kształt jednakowej wielkości sześcianów.
Bajtek układa jeden klocek na drugim, tworząc w ten sposób słupki.
Zbudował cały rządek takich słupków, jeden obok drugiego, w linii prostej.
Słupki mogą mieć różne wysokości.
Tata Bajtka, Bajtazar, zadał mu zagadkę.
Podał mu liczbę
i poprosił, żeby tak poprzestawiał klocki, aby
jak najwięcej kolejnych słupków miało wysokość przynajmniej
klocków.
Przy tym, klocki można przekładać tylko w określony sposób:
klocek można wziąć tylko ze słupka, którego wysokość przekracza
,
i przełożyć na sąsiedni słupek.
Podczas przekładania nie można tworzyć nowych słupków, klocki wolno przekładać
tylko pomiędzy już istniejącymi.
Wejście
W pierwszym wierszu standardowego wejścia znajdują się dwie liczby całkowite oddzielone pojedynczym odstępem:
(
), oznaczająca liczbę słupków, oraz
(
), oznaczająca liczbę pytań Bajtazara.
Słupki są ponumerowane od
do
.
W drugim wierszu znajduje się
liczb całkowitych
pooddzielanych
pojedynczymi odstępami (
).
Liczba
oznacza wysokość
-tego słupka.
W trzecim wierszu znajduje się
liczb całkowitych
pooddzielanych
pojedynczymi odstępami (
).
Są to kolejne liczby
, dla których należy rozwiązać zagadkę, czyli wyznaczyć największą
możliwą liczbę kolejnych słupków o wysokości co najmniej
, jakie można uzyskać za pomocą poprawnych przestawień
przy tej wartości parametru
.
Wyjście
Twój program powinien wypisać na standardowe wyjście
liczb całkowitych pooddzielanych pojedynczymi odstępami -
-ta z tych liczb powinna być odpowiedzią na zagadkę dla zadanego zestawu słupków oraz parametru
.
Przykład
Dla danych wejściowych:
5 6
1 2 1 1 5
1 2 3 4 5 6

poprawną odpowiedzią jest:
5 5 2 1 1 0
Autor zadania: Jacek Tomasiewicz.