Игра в кролика
В игре, где кролик проходит уровни, каждый из которых имеет свою сложность, кролик стремится к вызовам и предпочитает более сложные уровни. Однако, чтобы не переутомляться, он допускает возможность пройти не более T уровней, которые легче предыдущего.
Ваша задача — определить, сколькими способами можно пройти все уровни, соблюдая это условие. Поскольку число способов может быть очень большим, выведите результат по модулю 1000000007.
Входные данные
Первая строка содержит два целых числа N и T (1 ≤ N ≤ 100000, 1 ≤ T ≤ 100000). Здесь N обозначает количество уровней, а T — допустимое количество уровней, которые могут быть легче предыдущего.
Следующие N строк содержат по одному целому числу D_i (1 ≤ D_i ≤ 100000), представляющему сложность i-го уровня.
Выходные данные
Определите количество способов пройти все уровни, соблюдая условие. Выведите результат по модулю 1000000007.