I. Последовательности
Имя входного файла: | sequence.in |
Имя выходного файла: | sequence.out |
Ограничение по времени: | 2 s |
Ограничение по памяти: | 256 megabytes |
Саша изучает последовательности. Сегодня он занимается последовательностями из n чисел, каждое из которых может быть от 1 до c. Саше нравятся последовательности, в которых много одинаковых чисел идёт подряд. Поэтому для каждой последовательности a: a1, a2, …an, 1 ≤ ai ≤ c Саша вычисляет f(a) – максимально количество подряд идущих одинаковых чисел.
Например если n = 3, c = 2, то для последовательности 1 2 2 f(a) = 2, а для последовательности 1 2 1 f(a) = 1.
Сашу интересует сумма f(a) по всем возможным последовательностям. Так как сумма может быть очень большой, он просит посчитать её по модулю 109 + 7.
Формат входного файла
В первой строке входного файла находятся два числа n и c – длина последовательности и максимальное значение её элемента соответственно. (1 ≤ n ≤ 1000, 1 ≤ c ≤ 109)
Формат выходного файла
Выведите сумму f(a) по всем последовательностям, по модулю 109 + 7.
Пример:
sequence.in | sequence.out |
---|---|
2 4 | 20 |
3 2 | 16 |