eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Степени перестановок

Степени перестановок

Пусть \textbf{N} - натуральное число и \textbf{S} = \{\textbf{1}, \textbf{2}, \textbf{3}, ..., \textbf{N}\}. Для данного натурального числа \textbf{d} функция \textbf{f} : \textbf{S }→ \textbf{S} называется красивой, если существует такая взаимно однозначная функция \textbf{g} : \textbf{S }→ \textbf{S}, что для любого \textbf{x} из \textbf{S} выполнено равенство \textbf{g}(\textbf{g}(\textbf{g}(...\textbf{g}(x)...))) = \textbf{f}(\textbf{x}), где \textbf{g} повторяется ровно \textbf{d} раз. Требуется вычислить количество красивых функций. Так как ответ может быть большим, то его следует вывести по модулю \textbf{1000000009}. \InputFile В единственной строке входного файла заданы натуральные числа \textbf{N} и \textbf{d} (\textbf{N} ≤ \textbf{2000}, \textbf{d} ≤ \textbf{10^18}). \OutputFile В выходной файл выведите количество красивых функций для данных \textbf{N} и \textbf{d} по модулю \textbf{1000000009}.
Лимит времени 4 секунды
Лимит использования памяти 64 MiB
Входные данные #1
2 2
Выходные данные #1
1