#arc134f. [arc134_f]Flipping Coins

[arc134_f]Flipping Coins

题目描述

NN 个硬币,编号为 1,2,ldots,N1, 2, \\ldots, N,排成一行。初始时,所有硬币都是正面朝上。

Snuke 等概率地选择了一个 (1,ldots,N)(1,\\ldots,N) 的排列 pp,并进行了 NN 次操作。第 ii 次操作如下所示。

  • 如果编号为 ii 的硬币是反面朝上的,则不执行任何操作。
  • 如果编号为 ii 的硬币是正面朝上的,则将该硬币翻转,然后翻转硬币 pip_i

经过 NN 次操作后,Snuke 将从他的母亲那里得到 WkW^k 日元(日本货币),其中 kk 是正面朝上的硬币数。

求 Snuke 可以得到的金额的期望值,乘以 N!N!(可以证明这是一个整数),对 998244353998244353 取模。

约束条件

  • 输入中的所有值都是整数。
  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 1leqW<9982443531 \\leq W < 998244353

输入

输入以以下格式从标准输入给出:

NN WW

输出

打印出 Snuke 可以得到的金额的期望值,乘以 N!N!,对 998244353998244353 取模。

示例输入 1

4 2

示例输出 1

90
  • p=(1,4,2,3)p=(1,4,2,3) 时,操作顺序如下。
    • 在第 11 次操作中,编号为 11 的硬币反面朝上,然后将编号为 11 的硬币翻转为正面朝上。
    • 在第 22 次操作中,编号为 22 的硬币反面朝上,然后将编号为 44 的硬币反面朝上。
    • 在第 33 次操作中,编号为 33 的硬币反面朝上,然后将编号为 22 的硬币翻转为正面朝上。
    • 在第 44 次操作中,不执行任何操作。
  • 最后,有两个硬币正面朝上,所以他获得了 44 日元。

示例输入 2

2 100

示例输出 2

10001

示例输入 3

200000 12345

示例输出 3

541410753
  • 确保对 998244353998244353 取模。