Бесі знає число x + 0.5, де — це деяке ціле число від до , включно.
Ельза намагається вгадати це число. Вона може ставити питання виду "чи більше чи менше?" для деякого від до включно. Бесі відповідає "HI!", якщо більше ніж x + 0.5, і "LO!", якщо менше ніж x + 0.5.
Ельза дотримується наступної стратегії. Вона створила список з чисел, де кожне число від до зустрічається рівно один раз (іншими словами, цей список є перестановкою розміру ). Потім вона йде по цьому списку, називаючи числа для вгадування з нього по порядку. Однак вона пропускає всі непотрібні запити. Тобто, якщо Ельза повинна спитати число , а раніше вона питала число j < i таке, що Бесі відповіла "HI!", Ельза не питає , а переходить до наступного числа в списку. Аналогічно, якщо вона раніше питала про число j > i, на яке Бесі відповіла "LO!", Ельза також пропускає це число і переходить до наступного в списку. Можна довести, що використовуючи цю стратегію, Ельза завжди унікально визначить незалежно від перестановки, яку вона створить.
Якщо ми об'єднаємо всі відповіді Бесі "HI" або "LO" в один рядок , кількість разів, коли Бесі відповість "HILO", є кількістю підрядків довжини в рядку , які дорівнюють "HILO".
Бесі знає, що Ельза використовує цю стратегію і навіть вже вибрала число , однак вона не знає, яку перестановку використовує Ельза. Ваше завдання — обчислити суму кількостей разів, які Бесі скаже "HILO" для всіх перестановок, які Ельза може використовувати — по модулю 10^9 + 7.
Один рядок містить (1 \le n \le 5000) і .
Загальна кількість підрядків HILO по модулю 10^9 + 7.
Приклад 1
Приклад 2
Приклад 1
У цьому тесті число Бесі .
Наприклад, якщо перестановка Ельзи (4, 1, 3, 2), тоді Бесі скаже "HILOHILO", - два рази "HILO". Якщо перестановка Ельзи (3, 1, 2, 4), тоді Бесі скаже "HILOLO", "HILO" - один раз.
Приклад 2
Не забудьте вивести суму по модулю 10^9 + 7.