Гра з кроликом
Чесно кажучи, кролик не має значення.
Є кролик, який грає в екшн-гру з системою рівнів. У цій грі кожен рівень має свій рівень складності. Кролик, який завжди шукає викликів, прагне грати на більш складних рівнях, ніж він коли-небудь грав. Однак, іноді йому також потрібен відпочинок. Тому, щоб знайти компроміс, він погодився грати на T або менше рівнів, які легші за попередній.
Скількома способами можна пройти всі рівні одразу, дотримуючись вищезгаданої умови? Можливо, відповідь буде великою числом. Тому, повідомте мені відповідь за модулем 1000000007.
Вхідні дані
Перша строка вхідних даних містить два цілі числа N та T (1 ≤ N ≤ 100000, 1 ≤ T ≤ 100000). N - це кількість рівнів, а T - це рівень компромісу.
Наступні N рядків описують рівні складності кожного рівня. i-й рядок містить одне ціле число D_i (1 ≤ D_i ≤ 100000), яке є рівнем складності i-го рівня.
Вихідні дані
Обчисліть, скількома способами можна пройти всі рівні одразу. Виведіть відповідь за модулем 1000000007 в одному рядку.