AT_kupc2020_g Counting Angels

题目描述

タプリス酱喜欢数列。 现在,タプリス酱有一个长度为 $1$ 的数列 $A = (1)$。 她决定对 $A$ 重复进行 $N$ 次以下任意一种操作。下面,记数列 $A$ 从前往后第 $i$($1 \leq i \leq |A|$)个元素为 $a_i$。 - 在 $A$ 的末尾添加 $1$ 或 $M$。 - 选择一个整数 $i$,满足 $1 \leq i < |A|$。在 $a_i$ 和 $a_{i+1}$ 之间插入一个整数 $x$,使得 $a_i < x < a_{i+1}$ 或 $a_i > x > a_{i+1}$。 第 $i$ 次操作后得到的数列 $A$ 记为 $S_i$。 请你求出所有可能的数列序列 $S_1, S_2, \ldots, S_N$ 的种类数,结果对 $998244353$ 取模。

输入格式

输入为以下格式,从标准输入读入。 > $N$ $M$

输出格式

输出所有可能的数列序列 $S_1, S_2, \ldots, S_N$ 的种类数,对 $998244353$ 取模后的结果。

说明/提示

## 限制条件 - $1 \leq N \leq 3000$ - $2 \leq M \leq 10^8$ ## 样例解释 1 首先第一次操作在 $A$ 的末尾添加 $3$,得到 $A = (1, 3)$。接着第二次操作在 $1$ 和 $3$ 之间插入 $2$,得到 $A = (1, 2, 3)$。因此,这样操作后,$S_1 = (1, 3), S_2 = (1, 2, 3)$。 除此之外,还可以有以下情况: - $S_1 = (1, 1), S_2 = (1, 1, 1)$ - $S_1 = (1, 1), S_2 = (1, 1, 3)$ - $S_1 = (1, 3), S_2 = (1, 3, 3)$ - $S_1 = (1, 3), S_2 = (1, 3, 1)$ 共 $5$ 种情况。因此答案为 $5$。 ## 样例解释 2 请输出对 $998244353$ 取模后的结果。 由 ChatGPT 4.1 翻译