#loj5516. 「PA 2019 Final」Grafy

「PA 2019 Final」Grafy

[AdditionalFile5516.zip](file://AdditionalFile5516.zip?type=additional_file)

#5516. 「PA 2019 Final」Grafy

标签: 传统 | 时间限制: 5000 ms | 内存限制: 256 MiB |

题目描述

题目译自 PA 2019 Final Grafy

你的任务是计算具有 nn 个顶点(编号为从 11nn 的整数)的有向图数量,其中每个顶点的入度和出度均为 22

我们只考虑简单图,即不包含自环和重边的图,但可以同时包含边 aba \rightarrow bbab \rightarrow a。两个图被认为是不同的,当且仅当存在至少一对有序顶点对 (a,b)(a, b),使得边 aba \rightarrow b 在这两个图中仅存在于其中一个图中。

由于这类图的数量可能非常大,你只需要输出其数量除以给定的质数 pp 的余数。

输入格式

输入的唯一一行包含两个整数 nnpp3n5003 \leq n \leq 500108+7p109+710^{8}+7 \leq p \leq 10^{9}+7pp 是一个质数)。

输出格式

输出应包含一个整数,表示所求图的数量对 pp 取模的结果。

样例

输入

4 1000000007

输出

9

对于 n=4n=4,存在 99 个满足任务条件的图。