Ограничения: время – 250ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
> Царь Алкиной, между всех феакийских мужей наилучший!\
...Я — Одиссей Лаэртид. Измышленьями хитрыми славен\
Я между всеми людьми. До небес моя слава доходит.\
`\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ` Одиссея, песнь 9
Потерпевшего кораблекрушение Одиссея приютил у себя во дворце царь Алкиной. Герой не прочь задержаться в гостях подольше,
ведь всё, что от него требуется -- это лишь каждый вечер рассказывать какую-нибудь историю про свои прошлые подвиги. Всего
Одиссей совершил `N` подвигов, а за один вечер успевает рассказать историю про `M` из них. Упоминать один и тот же подвиг
дважды в течение одной истории (то есть, в тот же вечер) недостойно героя, но уже на следующий день про тот же подвиг
можно рассказывать снова, в следующей истории. Более того, даже если две истории состоят из
описаний одних и тех же подвигов, но в разном порядке -- Алкиной все равно радостно послушает их обе. И лишь
повторять дважды полностью одинаковую историю (те же подвиги в том же порядке) Одиссею не позволит гордость. Помогите
хитроумному Одиссею подсчитать, сколько вечеров он сможет провести в гостях, пока его героические истории
не начнут повторяться и не наскучат Алкиною.
В первой строке ввода содержится два целых числа: общее число подвигов Одиссея `N` и количество подвигов
в одной истории `M` (`1<=M<=N<=10^5`).
Выведите одно целое число -- количество различных историй, которые Одиссей сможет рассказать. Число может быть очень большим,
поэтому выведите остаток от его деления на 1000000007.
```sample Пример ввода
3 2
```
```sample Пример вывода
6
```
Пояснение к примеру. Из трех подвигов A, B и C можно составить истории: AB, BA, AC, CA, BC, CB.