#arc146f. [arc146_f]Simple Solitaire

[arc146_f]Simple Solitaire

题目描述

对于一个由 (1,2,dots,N)(1,2,\\dots,N) 的排列 PP,执行以下过程。

我们有 NN 张卡片,编号为 11NN。第 ii 张卡片上写着整数 PiP_i

有一个整数 X=1X=1 和一个叫做 PCT 的男孩,他一开始什么都没有。PCT 对每个 i=1,2,dots,Ni=1,2,\\dots,N 按照以下顺序执行以下操作。

  • 拿到第 ii 张卡片。然后,只要他手中有一张写着 XX 的卡片,就重复以下动作:

  • 吃掉写着 XX 的卡片,然后将 XX11

  • 如果 PCT 当前手中的卡片数达到了 MM 或更多,他将丢弃所有卡片,并终止过程,不再执行任何操作。

现在,让我们根据以下规则定义排列 PP 的得分:

  • 如果通过丢弃卡片来终止过程,那么 PP 的得分为 00
  • 如果过程一直执行到最后而没有丢弃卡片,那么 PP 的得分为 prodi=1N1\\prod_{i=1}^{N-1} (( 过程的第 ii 步结束时 PCT 手中的卡片数 ))

共有 N!N!(1,2,dots,N)(1,2,\\dots,N) 的排列 PP。请找出所有这些排列得分的总和,结果对 998244353998244353 取模。

约束条件

  • 2leNle2times1052 \\le N \\le 2 \\times 10^5
  • 2leMleN2 \\le M \\le N
  • 输入中的所有值均为整数。

输入

从标准输入读取输入数据,输入格式如下:

NN MM

输出

输出答案。


示例输入1

3 2

示例输出1

1

对于 P=(3,1,2)P=(3,1,2),过程如下。

  • 第一步:
    • PCT 拿到第 11 张卡片。
    • PCT 当前手中有 11 张卡片,所以他继续执行。
  • 第二步:
    • PCT 拿到第 22 张卡片。
    • PCT 吃掉第 22 张卡片并将 X=2X = 2
    • PCT 当前手中有 11 张卡片,所以他继续执行。
  • 第三步:
    • PCT 拿到第 33 张卡片。
    • PCT 吃掉第 11 张和第 33 张卡片,并将 X=4X = 4
    • PCT 当前手中没有卡片,所以他继续执行。

过程一直执行到最后,所以 (3,1,2)(3,1,2) 的得分为 1times1=11 \\times 1 = 1

除了 (3,1,2)(3,1,2),没有其他排列的得分大于等于 11,所以答案是 11


示例输入2

3 3

示例输出2

5

示例输入3

146146 146

示例输出3

103537573