atcoder#ABC281H. [ABC281Ex] Alchemy

[ABC281Ex] Alchemy

配点 : 600600

問題文

高橋君は「レベル 11 の宝石」を AA 種類、それぞれ 101010010^{10^{100}} 個ずつ持っています。 また、22 以上の整数 nn に対し、以下の条件すべてを満たす nn 個の宝石を鍋に入れることで代わりに「レベル nn の宝石」を 11 個生成できます。

  • どの 22 個の宝石も種類が異なる。
  • どの宝石のレベルも nn 未満である。
  • 22 以上の整数 xx すべてについて、「レベル xx の宝石」は高々 11 個である。

高橋君が手に入れられる可能性がある「レベル NN の宝石」が何種類あるかを mod 998244353\text{mod } 998244353 で求めてください。

ただし、レベルが 22 以上の宝石同士は、それぞれを生成するときに用いた宝石の集合が一致しているときに同じ種類であるとみなします。

  • ここで、宝石の集合同士は、ある一方の集合に含まれる宝石であってもう一方の集合に同じ種類の宝石が含まれないようなものが存在するときに区別されます。

また、任意の「レベル 11 の宝石」と任意のレベルが 22 以上の宝石は種類が異なります。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1A1091 \leq A \leq 10^9
  • N,AN,A は整数

入力

入力は以下の形式で標準入力から与えられる。

NN AA

出力

答えを出力せよ。

3 3
10

1010 種類の「レベル 33 の宝石」を手に入れる方法を以下に示します。

  • 33 種類の「レベル 11 の宝石」を鍋に入れる。- 高橋君は「レベル 11 の宝石」を 33 種類持っているため、「レベル 11 の宝石」を 33 種類選ぶ方法は 11 通りです。このため、この方法で手に入れられる「レベル 33 の宝石」は 11 種類です。
  • 高橋君は「レベル 11 の宝石」を 33 種類持っているため、「レベル 11 の宝石」を 33 種類選ぶ方法は 11 通りです。このため、この方法で手に入れられる「レベル 33 の宝石」は 11 種類です。
  • 11 種類の「レベル 22 の宝石」と 22 種類の「レベル 11 の宝石」を鍋に入れる。- 「レベル 22 の宝石」は 22 種類の「レベル 11 の宝石」を鍋に入れることで手に入れられます。- 高橋君は「レベル 11 の宝石」を 33 種類持っているため、「レベル 11 の宝石」を 22 種類選ぶ方法は 33 通りです。このため、ここで使われる「レベル 22 の宝石」として考えられるものは 33 種類です。
    • 「レベル 22 の宝石」として考えられるものが 33 種類、22 種類の「レベル 11 の宝石」を選ぶ方法が 33 通りあるため、この方法で手に入れられる「レベル 33 の宝石」は 3×3=93 \times 3 = 9 種類です。
  • 「レベル 22 の宝石」は 22 種類の「レベル 11 の宝石」を鍋に入れることで手に入れられます。
  • 高橋君は「レベル 11 の宝石」を 33 種類持っているため、「レベル 11 の宝石」を 22 種類選ぶ方法は 33 通りです。このため、ここで使われる「レベル 22 の宝石」として考えられるものは 33 種類です。
  • 「レベル 22 の宝石」として考えられるものが 33 種類、22 種類の「レベル 11 の宝石」を選ぶ方法が 33 通りあるため、この方法で手に入れられる「レベル 33 の宝石」は 3×3=93 \times 3 = 9 種類です。
1 100
100
200000 1000000000
797585162