题目描述
我们称一个长度为 2×n 的数列是有趣的,当且仅当该数列满足以下三个条件:
- 它是从 1 到 2×n 共 2×n 个整数的一个排列 {ai};
- 所有的奇数项满足 a1<a3<⋯<a2n−1,所有的偶数项满足 a2<a4<⋯<a2×n;
- 任意相邻的两项 a2×i−1 与 a2×i (1≤i≤n) 满足奇数项小于偶数项,即:a2×i−1<a2×i。
现在的任务是:对于给定的 n,请求出有多少个不同的长度为 2×n 的有趣的数列。因为最后的答案可能很大,所以只要求输出答案 modP的值。
输入格式
输入文件只包含用空格隔开的两个整数 n 和 P。输入数据保证
输出格式
仅含一个整数,表示不同的长度为 2n 的有趣的数列个数 mod P 的值。
3 10
5
样例解释
对应的 5 个有趣的数列分别为 $(1,2,3,4,5,6),(1,2,3,5,4,6),(1,3,2,4,5,6),(1,3,2,5,4,6),(1,4,2,5,3,6)$。
数据范围
50% 的数据满足 n≤1000
100% 的数据满足 n≤106 且 P≤109。