E. Дарт Вейдер и дерево
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Когда Дарту Вейдеру становится скучно, он садится на диван, закрывает глаза и представляется себе бесконечное корневое дерево, в котором у каждой вершины есть ровно n сыновей, при этом для каждой вершины расстояние от неё до её i - го слева сына равняется di. Лорд ситхов любит считать количество вершин в дереве, находящихся на расстоянии не более x от корня. Под расстоянием здесь понимается сумма длин рёбер на пути между вершинами.

Для него это вошло в привычку и также стало скучным. "Но зачем тогда он это делает?" — спросите вы. Просто он чувствует превосходство, зная, что с этой задачей способен справиться только он.

Хотите бросить вызов самому Дарту Вейдеру? Посчитайте требуемое количество вершин. Так как ответ может быть большим - найдите его по модулю 109 + 7.

Входные данные

В первой строке через пробел записано два целых числа n и x (1 ≤ n ≤ 105, 0 ≤ x ≤ 109) — количество сыновей каждой вершины и расстояние от корня, в пределах которого требуется посчитать вершины.

В следующей строке через пробел следуют n чисел di (1 ≤ di ≤ 100) — длина ребра, соединяющего каждую вершину с её i-м сыном.

Выходные данные

Выведите одно число — количество вершин в дереве на расстоянии от корня не более x.

Примеры
Входные данные
3 3
1 2 3
Выходные данные
8
Примечание

Рисунок к примеру (желтым помечены вершины, расстояние до которых не больше трех)