[POI 2021/2022 R1] Układanie kart
题目背景
译自 [XXIX Olimpiada Informatyczna – I etap](https://sio2.mimuw.edu.pl/c/oi29-1/dashboard/) [Układanie kart](https://sio2.mimuw.edu.pl/c/oi29-1/p/ukl/)。
题目描述
我们用以下方法将一个排列递增排序:
一次操作:记第一个数字为 $k$,在排列中找到 $k-1$($k=1$ 则取 $n$),把 $k-1$ 拉到排列的第一个位置,中间的数字依次后移。
一次操作的价值:$k-1$(或 $n$)在原排列的位置(这个从 $0$ 开始标号)。
一个排列的价值:进行若干次操作直到排列有序,价值为每次操作的价值之和。
给你 $n,m$,求所有 $n!$ 个排列的价值之和,对 $m$ 取模。
输入输出格式
输入格式
一行两个正整数,$n,m$。
输出格式
一行一个整数,答案对 $m$ 取模的结果。
输入输出样例
输入样例 #1
2 100
输出样例 #1
1
输入样例 #2
3 100
输出样例 #2
15
输入样例 #3
10 1000
输出样例 #3
100
输入样例 #4
500 100000
输出样例 #4
60000
输入样例 #5
100000 1000
输出样例 #5
0
说明
对于所有数据,$2\leq n\leq 1000000$,$2\leq m\leq 10^9$。
| 子任务编号 | 附加限制 | 分数 |
| :----------: | :----------: | :----------: |
| 1 | $n\leq 10$ | 10 |
| 2 | $n\leq 2000$ | 60 |
| 3 | | 30 |