A. Воппер джуниор
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мальчик Ярослав захотел на обед съесть $$$n$$$ вопперов. Сначала он ест первый воппер, затем второй, третий и так далее. Вкусность $$$i$$$-го воппера равна $$$a_i$$$.

Так как у Ярослава СДВГ, ему тяжело есть воппер, когда его вкусность не совпадает со вкусностью предыдущего съеденного воппера, поэтому сделать так он может ровно $$$m$$$ раз. Ему стало интересно, сколько существует различных последовательностей вопперов, которые он может съесть, если вкусность каждого воппера может быть любым целым числом от $$$1$$$ до $$$k$$$.

Более формально, требуется посчитать количество последовательностей $$$a$$$ длины $$$n$$$, состоящих из чисел от $$$1$$$ до $$$k$$$, таких что существует ровно $$$m$$$ индексов $$$i$$$ ($$$2 \le i \le n$$$), для которых $$$a_i \ne a_{i-1}$$$.

Так как таких последовательностей может быть очень много, выведите ответ по модулю $$$10^9 + 7$$$.

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

В единственной строке заданы три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$0 \le m \lt n \le 10^7$$$, $$$1 \le k \le 10^9$$$) — количество вопперов, количество переходов между вопперами с разной вкусностью и максимальная возможная вкусность воппера.

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

Выведите единственное число — количество последовательностей вопперов, которые может съесть Ярослав, по модулю $$$10^9 + 7$$$.

Система оценки

Тесты к этой задаче состоят из четырех групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, что прохождение тестов из условия не требуется для некоторых групп. Итоговый балл за каждую группу равняется максимальному баллу, полученному за эту группу тестов по всем отправленным посылкам.

ПодзадачаБаллыДополнительные ограниченияНеобх. подзадачи
$$$n$$$дополнительно
$$$1$$$$$$20$$$$$$n \le 8$$$$$$k \le 8$$$У
$$$2$$$$$$15$$$—$$$m = n - 1$$$—
$$$3$$$$$$25$$$$$$n \le 1\,000$$$—У, 1
$$$4$$$$$$40$$$——У, 1–3
Примеры
Входные данные
3 2 4
Выходные данные
36
Входные данные
4 2 4
Выходные данные
108
Входные данные
8 4 5
Выходные данные
44800