交通规划方案层出不穷,小伊维卡(Ivica)只关心一个问题:去学校的路对他来说有多有趣!
我们可以想象萨格勒布由 $N$ 个街区组成,编号从 $1$ 到 $N$。在某些街区对 $i$ 和 $j$(其中 $i < j$)之间存在单行道。交通规划方案由一组这样的单行道组成。
伊维卡的家位于 $1$ 号街区,学校位于 $N$ 号街区。现在他想知道,对于每个 $K$(从 $0$ 到 $N$),有多少种交通规划方案,使得从 $1$ 号街区到 $N$ 号街区的某条可能路径上经过的街区数量恰好为 $K$。
由于这些数字可能非常大,他想知道它们对 $P$ 取模后的结果。
输入格式
第一行包含自然数 $N$ 和 $P$。
输出格式
在唯一的一行中输出 $N+1$ 个数字,其中第 $i$ 个数字表示从 $1$ 号街区到 $N$ 号街区经过 $i-1$ 个街区的交通规划方案数量,结果对 $P$ 取模。
数据范围
在所有子任务中,满足 $2 \le N \le 2000$ 且 $10^8 \le P \le 10^9 + 100$,$P$ 为质数。
| 子任务 | 分值 | 约束 |
|---|---|---|
| 1 | 4 | $N \le 7$ |
| 2 | 7 | $N \le 18$ |
| 3 | 23 | $N \le 50$ |
| 4 | 13 | $N \le 100$ |
| 5 | 18 | $N \le 300$ |
| 6 | 35 | 无额外约束 |
样例
样例输入 1
2 1000000007
样例输出 1
1 0 1
样例输入 2
3 1000000007
样例输出 2
3 0 3 2
样例输入 3
5 1000000007
样例输出 3
183 0 183 286 250 122
说明
样例 2 的解释:
当 $K=0$ 时,交通规划方案为: {} {(1, 2)} * {(2, 3)}
当 $K=2$ 时,交通规划方案为: {(1, 3)} {(1, 3), (1, 2)} * {(1, 3), (2, 3)}
当 $K=3$ 时,交通规划方案为: {(1, 2), (2, 3)} {(1, 2), (1, 3), (2, 3)}