Вежа
Місто X складається з n будівель, розташованих на одній прямій із заходу на схід і пронумерованих з 1 до n. Кожна будівля має унікальну висоту - ціле число, відповідно h[1]
, h[2]
, ..., h[n]
. Уряд міста планує побудувати вежу, яка буде розташована на цій же прямій (можливо перед першою будівлею, між будь-якими двома будівлями або після останньої будівлі). Вежа повинна мати висоту H, яка не збігається з висотами жодної з будівель.
Через деякі технічні особливості, вежа може передавати сигнали лише на захід (до початку ряду будівель). Сигнали поширюються у вигляді горизонтальних променів (паралельно землі, яку ми розглядаємо як пряму лінію) і випромінюються з усієї поверхні вежі (зверху вниз). Таким чином, вежа випромінює безперервну смугу сигналів з шириною, рівною висоті вежі. Коли промінь потрапляє в будівлю, він зупиняється. Кожна будівля приймає сигнали за допомогою приймача, розташованого на її вершині. Будівля отримує повідомлення, якщо хоча б один промінь досягає її приймача.
Іншими словами, будівля номер i буде отримувати повідомлення від вежі, якщо: будівля i розташована західніше вежі; i не вища за вежу; і якщо не існує іншої будівлі j між ними (j > i), яка вища за будівлю i.
На малюнку зверху будівлями, що отримують повідомлення, є 2, 5, 6 і 9.
Напишіть програму, яка визначить максимальну кількість будівель, які будуть отримувати повідомлення. Вам буде надано рядок будівель у місті (фактично, їх висоти) і висота вежі. Звісно, вежу слід розташувати оптимально.
Вхідні дані
Перша строка містить два числа: n (1 ≤ n ≤ 10^6
) і H (1 ≤ H, h[i]
≤ 10^9
) - кількість будівель і висота вежі. Друга строка містить n додатних цілих чисел - висоти будівель у місті, упорядковані за номерами будівель (від першої до n-ї).
Вихідні дані
Виведіть максимальну кількість будівель, які будуть отримувати повідомлення, якщо побудувати вежу за умови оптимального розміщення.
Приклади
Примітка
На малюнку внизу наведено оптимальне розміщення вежі. Повідомлення отримають будівлі з номерами 2, 5, 6, 7 і 8.