Фермер Джон проводит утреннюю зарядку с коровами.
\(N\) коров (\(1\le N\le 10^4\)) стоят в ряд.
\(i\)-ая корова слева имеет метку \(i\) для каждого \(1\le i\le N\).
ФД говорит коровам повторять следующие действия до тех пор,
пока коровы не вернуться к тому же порядку, с которого начинали:
- По заданной перестановке \(A\) длины \(N\), коровы изменяют их порядок так,
что \(i\)-ая корова слева до изменения становится \(A_i\) коровой слева после изменения
Например, если \(A=(1,2,3,4,5)\) тогда коровы выполнят один шаг.
Если \(A=(2,3,1,5,4)\), тогда коровы выполнят 6 шагов. Порядок коров слева направо
после каждого из шагов будет таким:
- 0 шаг: \((1,2,3,4,5)\)
- 1 шаг: \((3,1,2,5,4)\)
- 2 шаг: \((2,3,1,4,5)\)
- 3 шаг: \((1,2,3,5,4)\)
- 4 шаг: \((3,1,2,4,5)\)
- 5 шаг: \((2,3,1,5,4)\)
- 6 шаг: \((1,2,3,4,5)\)
Определите сумму всех положительных целых чисел \(K\) таких, что существует
перестановка длины \(N\), которая требует от коров выполнить ровно \(K\) шагов.
Поскольку это число может быть очень большим, выведите ответ по модулю \(M\)
(\(10^8\le M\le 10^9+7\), \(M\) - простое).
ФОРМАТ ВВОДА (файл exercise.in):
Первая строка содержит \(N\) и \(M\).
ФОРМАТ ВЫВОДА (файл exercise.out):
Одно целое число
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 1000000007
|
21
|