AT_agc077_d [AGC077D] Range Replace 2

题目描述

给定一个正整数 $N$ 和一个素数 $P$。 存在一个长度为 $N$ 的序列 $A=(A_1,A_2,\ldots,A_N)$,初始所有元素均为 $0$。 你可以进行如下操作若干次(可以为零次): - 选择一对整数 $(l, r)$,满足 $1\leq l\leq r\leq N$。将 $A_l,A_{l+1},\ldots,A_r$ 的每一项都替换为 $\dfrac{r(r-1)}{2}+l$。 请你求出,经过若干次操作后,所有可能得到的序列 $A$ 的方案数,答案对 $P$ 取模。

输入格式

输入由标准输入给出,格式如下: ``` N\ P ```

输出格式

输出一个整数,表示答案。

说明/提示

### 样例解释 1 两种可能的序列 $A$ 分别为 $(0)$ 和 $(1)$。 ### 样例解释 2 共有七种可能的序列 $A$,分别为 $(0,0)$、$(0,3)$、$(1,0)$、$(1,2)$、$(1,3)$、$(2,2)$、$(2,3)$。 ### 数据范围 - $1\leq N\leq 5000$ - $P$ 是满足 $10^8