#abc281h. [abc281_h]Alchemy

[abc281_h]Alchemy

题目描述

高桥有 AA 种一级宝石,每种宝石有 101010010^{10^{100}} 颗。
对于大于等于 22 的整数 nn,他可以将满足以下条件的 nn 颗宝石放入坩埚中,从而得到一颗nn级宝石。

  • 任意两颗宝石不是同一种类。
  • 每颗宝石的级别都小于 nn
  • 对于大于等于 22 的整数 xx,最多只能有一颗xx级宝石。

请计算高桥可以获得的级别为 NN 的宝石的种类数,对 998244353998244353 取模。

这里,如果两个级别为 22 或更高的宝石是由同一组宝石产生的,则认为它们是相同的种类。

  • 当且仅当一个集合中有一颗宝石,而另一个集合中没有同类宝石时,两个宝石集合才被区分开来。

任何一级宝石和任何二级或更高级宝石都属于不同的种类。

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1A1091 \leq A \leq 10^9
  • NNAA 是整数。

输入

输入通过标准输入给出,格式如下:

NN AA

输出

输出答案。

示例输入 1

3 3

示例输出 1

10

有十种方法可以得到一颗三级宝石。

  • 将三种一级宝石放入坩埚中。
    • 高桥有三种一级宝石,所以有一种选择三种一级宝石的方法。因此,他可以通过这种方式获得一种三级宝石。
  • 将一种二级宝石和两种一级宝石放入坩埚中。
    • 通过将两种一级宝石放入坩埚中,可以获得一种二级宝石。
      • 高桥有三种一级宝石,所以有三种选择两种一级宝石的方法。因此,在这种情况下有三种二级宝石可用。
    • 有三种二级宝石,以及三种两种一级宝石的选择方法,因此他可以通过这种方式获得 3×3=93 \times 3 = 9 种三级宝石。

示例输入 2

1 100

示例输出 2

100

示例输入 3

200000 1000000000

示例输出 3

797585162