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.