排座位
题号:NC252432
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

m个椅子从左到右排成一排,n个人随机坐在这m个椅子上,每个椅子只能坐一个人。

在这个问题中,间隔的“长度”意为连在一起的空位数。(具体可以参考样例解释)

求这n个人坐到位置上后所产生的最大间隔的数学期望。

期望对998244353取模。

可以证明,答案可以表示成 \frac{p}{q} 的形式,其中 p \geq 0, q \geq 1, \operatorname{gcd}(p, q)=1, q \bmod 998244353 \neq 0 ,故你只要输出 p \cdot q^{-1} \bmod 998244353 即可。此处 q^{-1} 表 示 q 在模 998244353 意义下的逆元。

输入描述:

每组数据只有一行,包含两个正整数n,m(1 \leq n \leq 10^6)(n \leq m \le 10^6 ), 变量的意义见题目描述。

输出描述:

输出一个数字,表示答案。
示例1

输入

复制
2 5

输出

复制
598946614

说明

以下用10个长度为501串表示所有的情况,其中0表示空位,1表示该位置有人。

11000,最大间隔为3

10100,最大间隔为2

10010,最大间隔为2

10001,最大间隔为3

01100,最大间隔为2

01010,最大间隔为1

01001,最大间隔为2

00110,最大间隔为2

00101,最大间隔为2

00011,最大间隔为3

故期望为\frac{3+ 2 +2 + 3 + 2 + 1 + 2 + 2+ 2+ 3}{10} = \frac{11}{5}
示例2

输入

复制
10 100

输出

复制
195355775