Гарна шеренга
Обмеження: 2 сек., 512 МіБ
У Зеника з Марічкою на фермі є nn жеребців, пронумерованих від 11 до nn.
Фермери хочуть вишикувати деяких своїх коней у шеренгу.
Назвемо шеренгу з kk коней гарною, якщо всі коні в цій шерензі мають номери від 11 до kk в будь-якому порядку.
Наприклад, шеренги (2,1,3)(2,1,3), (1)(1), (4,3,2,1)(4,3,2,1) є гарними, а (1,2,4,5)(1,2,4,5), (47)(47), (3,2)(3,2) — ні.
Зеник та Марічка хочуть вибрати деяких своїх коней, та вишикувати їх у шеренгу. Порахуйте, будь ласка, скільки різних гарних шеренг вони можуть отримати. Дві шеренги вважаємо різними, якщо в них різна довжина, або на відповідних позиціях стоять коні з різними номерами. Оскільки ця кількість може бути дуже великою, виведіть остачу від її ділення на ціле число mm.
Вхідні дані
В одному рядку задано два цілі числа nn та mm.
Вихідні дані
Виведіть ціле число — остачу від ділення кількості різних гарних шеренг на mm.
Обмеження
1≤n≤1091≤n≤109,
1≤m≤10001≤m≤1000.
Оцінювання складається з таких блоків:
по 1 балу за кожен приклад з умови,
6 балів: m=1m=1,
9 балів: n≤10n≤10,
23 бали: m=10m=10,
17 балів: n≤1000n≤1000,
42 бали: без додаткових обмежень.
Бали за блок ви отримаєте, тільки якщо ваша програма пройде всі тести з блоку.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
3 10 | 9 |
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
4 7 | 5 |
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
7 777 | 474 |
Примітки
У першому прикладі n=3,m=10n=3,m=10. Зеник і Марічка можуть вибрати коней і вишикувати їх у шеренгу 1515 способами:
(1)(1) — гарна шеренга,
(1,2)(1,2) — гарна шеренга,
(1,2,3)(1,2,3) — гарна шеренга,
(1,3)(1,3),
(1,3,2)(1,3,2) — гарна шеренга,
(2)(2),
(2,1)(2,1) — гарна шеренга,
(2,1,3)(2,1,3) — гарна шеренга,
(2,3)(2,3),
(2,3,1)(2,3,1) — гарна шеренга,
(3)(3),
(3,1)(3,1),
(3,1,2)(3,1,2) — гарна шеренга,
(3,2)(3,2),
(3,2,1)(3,2,1) — гарна шеренга.
У дев’яти способах утворена шеренга є гарною. Відповідь — це остача від ділення 99 на 1010, що дорівнює 99.
У другому прикладі n=4,m=7n=4,m=7. Зеник з Марічкою можуть утворити 3333 гарні шеренги. Відповідь — це остача від ділення 3333 на 77, що дорівнює 55.