Problem description


Firma
(firma)
Memory limit: 32 MB
Time limit: 3.00 s

Bajtosoft jest wielkim potentatem na bajtockim rynku informatycznym. Ostatnimi czasy, po wchłonięciu innych mniejszych firm bardzo się rozrósł. Rozrost firmy niesie za sobą szereg różnych problemów. Między innymi z wynagrodzeniami pracowników.

W Bajtosofcie obowiązują następujące reguły gry:

  • każdy pracownik (poza szefami działu) ma bezpośredniego przełożonego,

  • każdy pracownik zarabia całkowitą, dodatnią liczbę bajtalarów,

  • przełożony musi zarabiać co najmniej połowę więcej pieniędzy niż dowolny z jego podwładnych.

Poza tymi trzema zasadami, nie ma żadnych innych.

Zarząd Bajtosoftu wie, że zadowolony pracownik to dobry pracownik, a firma chce mieć samych dobrych pracowników. W związku z tym firma chciałaby każdemu pracownikowi zapłacić jak najwięcej. Niestety jak to w życiu, firma ma ograniczony budżet do co najwyżej K bajtalarów.

Napisz program, który: wczyta liczbę pracowników, budżet Bajtosoftu i relację pracowników w firmie, wyznaczy największą możliwą wypłatę dla pracownika zarabiającego w firmie najmniej (przy zachowaniu zasad wynagrodzeń w Bajtosofcie) i wypisze wynik na wyjście.

Wejście

W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N i K, oddzielone pojedynczym odstępem i określające kolejno: liczbę pracowników w Bajtosofcie oraz budżet firmy na wynagrodzenia.

W drugim wierszu znajduje się N liczb całkowitych Ai, pooddzielanych pojedynczymi odstępami. i-ta liczba ciągu określa relację pracowniczą dla i-tego pracownika. Jeśli Ai > 0, to bezpośrednim przełożonym pracownika numer i jest pracownik numer Ai. Jeśli zaś Ai = 0, to pracownik i jest szefem działu i nie posiada bezpośrednich przełożonych.

Pracownicy są numerowani kolejnymi liczbami naturalnymi od 1 do N włącznie.

Możesz założyć, że dane wejściowe opisują poprawną relację pracowników – nie ma relacji cyklicznych.

Wyjście

W pierwszym i jedynym wierszu wyjścia powinna się znaleźć jedna liczba całkowita – maksymalna możliwa wypłata dla najgorzej zarabiającego pracownika w Bajtosofcie lub jedno słowo NIE jeśli przyznanie wypłat zgodnie z powyżej opisanymi zasadami jest niemożliwe.

Ograniczenia

1 ≤ N ≤ 200 000, 1 ≤ K ≤ 1018.

W testach wartych łącznie 50% maksymalnej punktacji N ≤ 2 000.

Przykład

Input Output Explanation
6 30
0 1 1 0 4 3
3

Przykładowy poprawny sposób wypłat dla kolejnych pracowników jest następujący: 9, 3, 6, 5, 3, 3.