Одного разу Арті попросили підготувати кілька змагань з програмування. Оскільки він дуже ледачий, то вирішив трохи схитрувати. Він підготував задач, для -ої задачі він підготував s_i умов. Тепер він хоче скласти змагання з цих задач, які задовольняють наступним правилам:
кожна задача в змаганні може бути використана тільки один раз;
змагання повинно містити від до задач;
два змагання вважаються різними, якщо є задача, яка присутня в одному змаганні і відсутня в іншому, або якщо хоча б одна задача має різні умови в цих змаганнях;
вважаються множини задач, а не їх порядок слідування в змаганнях.
Обчисліть, скільки різних змагань може підготувати Арті. Оскільки це значення може бути великим, то виведіть його за модулем 10^9 + 7.
Перший рядок містить числа , , (1 \leq a \leq b \leq n \leq 10000). Другий рядок містить цілих чисел s_i (1 \leq s_i \leq 100).
Виведіть кількість різних змагань, які може підготувати Арті, за модулем 10^9 + 7.
Приклад 1