Недавно был осуществлен совершенно секретный полет на Марс, в результате которого удалось получить некоторые сведения относительно марсианской ДНК. Стало известно, что любая марсианская цепочка ДНК содержит не более m различных нуклеотидов, пронумерованных от 1 до m. Из-за особенностей марсианской ДНК некоторые пары нуклеотидов не могут идти подряд в этой цепочке. Например, если нуклеотид номер 1 и нуклеотид номер 2 не могут встречаться подряд в марсианской ДНК, значит цепочка нуклеотидов [1, 2] не является корректной цепочкой марсианской ДНК, при этом цепочка нуклеотидов [2, 1] может быть корректной (если нет соответствующего ограничения). Количество пар нуклеотидов, которые не могут содержаться в цепочке ДНК подряд, равно k.
Для нужд генных исследований понадобилась информация о количестве корректных цепочек марсианской ДНК длины n. Вам поручено написать программу, которая вычислит это значение.
Выходные данные
Выведите единственное целое число — остаток от деления искомого количества на 1000000007 (109 + 7).
Примечание
Во втором тестовом примере допустимы все возможные ДНК из трех нуклеотидов. Каждый нуклеотид может принимать одно из трех значений, поэтому всего существует 27 различных ДНК из трех нуклеотидов.
В третьем тестовом примере нельзя сделать ни одного ДНК из двух нуклеотидов — единственный возможный нуклеотид «a» не может встречаться два раза подряд.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 3 2 ab ba
|
17
|
|
2
|
3 3 0
|
27
|
|
3
|
2 1 1 aa
|
0
|