AT_agc043_d [AGC043D] Merge Triplets
题目描述
给你一个正整数 $N$,计算可以按以下方法生成的 $1$ 到 $3N$ 的排列 $(P_1,P_2,\cdots,P_{3N})$ 的个数。
答案可以很大,所以你需要输出它对一个质数 $M$ 取模的值。
- 构造 $N$ 个长度为 $3$ 的序列 $A_1,A_2,\cdots,A_N$,其中 $1$ 到 $3N$ 每个数字均恰好出现一次。
- $P$ 初始为空,重复以下操作 $3N$ 次:
- 对于所有的非空序列 $A_i$,令 $x$ 为它们的第一个元素中最小的一个。
- 在 $x$ 所在的 $A_i$ 中删除 $x$,然后把 $x$ 加入 $P$ 的末尾。
输入格式
一行两个整数 $N,M$($1\le N\le 2000,10^8\le M\le 10^9+7$,$M$ 为质数)。
输出格式
输出一行一个整数,表示答案对 $M$ 取模后的值。
说明/提示
**样例 1 解释**
所有长度为 $3$ 的排列均满足条件。