#P15625. [ICPC 2022 Jakarta R] Sharing Bread

[ICPC 2022 Jakarta R] Sharing Bread

说明

NN 个烤面包机,从左到右编号为 11NN。初始时,每个烤面包机中都有一片面包。有 MM 个人,编号为 11MM,他们依次在烤面包机中寻找面包,从第 11 个人开始,然后是第 22 个人,依此类推。

ii 个人从烤面包机 aia_i1aiN1 \leq a_i \leq N)开始寻找,并一直向右寻找,直到找到一个装有面包的烤面包机。换句话说,第 ii 个人寻找的是满足 aijNa_i \leq j \leq N 且烤面包机 jj 中含有面包的最小 jj。如果这样的烤面包机存在,那么第 ii 个人将从该烤面包机中取走面包并离开;之后该烤面包机变为空。如果这样的烤面包机不存在,那么第 ii 个人将空手离开。

一个起始序列 (a1,a2,,aM)(a_1, a_2, \cdots, a_M) 被称为公平的,如果对于所有 1iM1 \leq i \leq M,第 ii 个人从烤面包机 aia_i 开始寻找,并且都没有空手离开。在所有 NMN^M 个可能的起始序列中,请计算有多少个是公平的,结果对 998244353998\,244\,353 取模。

输入格式

输入在一行中包含两个整数 NN MM1MN2000001 \leq M \leq N \leq 200\,000),分别表示烤面包机的数量和人的数量。

输出格式

在一行中输出一个整数,表示公平起始序列的数量对 998244353998\,244\,353 取模的结果。

4 3
50
10 1
10
2 2
3

提示

样例输入/输出 #1 的解释

一个可能的公平起始序列是 (4,2,2)(4, 2, 2)。首先,第 11 个人从烤面包机 44 开始寻找,并取走烤面包机 44 中的面包。接着,第 22 个人从烤面包机 22 开始寻找,并取走烤面包机 22 中的面包。最后,第 33 个人将从烤面包机 22 开始寻找,但此时烤面包机 22 是空的。第 33 个人移动到烤面包机 33,并取走烤面包机 33 中的面包。由于每个人都得到了一片面包,因此起始序列 (4,2,2)(4, 2, 2) 是公平的。

其他公平起始序列的例子包括 (1,1,1)(1, 1, 1)(1,1,2)(1, 1, 2)(2,3,4)(2, 3, 4)(2,2,2)(2, 2, 2)。一些不公平的起始序列包括 (3,3,3)(3, 3, 3)(3,4,3)(3, 4, 3)(4,4,1)(4, 4, 1)(4,4,4)(4, 4, 4)

样例输入/输出 #2 的解释

所有起始序列都是公平的。

样例输入/输出 #3 的解释

唯一不公平的起始序列是 (2,2)(2,2)。第 11 个人从烤面包机 22 开始寻找,并取走烤面包机 22 中的面包。接着,第 22 个人从烤面包机 22 开始寻找,但此时烤面包机 22 是空的。由于烤面包机 22 的右侧没有更多的烤面包机,第 22 个人将空手离开。

翻译由 DeepSeek 完成