J - Journey through the Fractal Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

1 辺の長さが 2^{i-1} の正三角形を、レベル i の三角形と呼びます。また、次の規則にしたがって生成される図形を、レベル i のフラクタルと呼びます。

  • レベル 1 のフラクタルは、レベル 1 の三角形である
  • レベル i + 1 (i \geq 1) のフラクタルは、レベル i の三角形の 3 辺のそれぞれにぴったり接するように、レベル i のフラクタルを配置した図形である(詳しくは、図を参照してください)

ここに、レベル L のフラクタルがあります。

Alice は、まず初めに、フラクタルを構成する三角形のうち好きなものを 1 つ選び、その三角形からスタートします。その後、まだ訪れていない三角形であって、今いる三角形に辺で隣接するものがあれば 1 つ選び、移動します。

Alice は移動を K 回まで行うことができます。Alice が訪れた三角形(スタートした三角形も含む)のレベルの総和を、スコアと定めます。

スコアとしてありうる値の最大値を 998244353 で割った余りを求めてください。なお、998244353 で割った余りの最大値を求めるのではないことに注意してください。

制約

  • 入力は全て整数
  • 1 \leq L \leq 10^9
  • 1 \leq K \leq 10^{18}

入力

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

L K

出力

スコアの最大値を 998244353 で割った余りを出力せよ。


入力例 1

3 4

出力例 1

6

図のように移動することで、レベル 1 の三角形を 4 つ、レベル 2 の三角形を 1 つ訪れることができます。

なお、図の三角形の中に書かれている数は、その三角形を何番目に訪れたかを表します。


入力例 2

998244353 100000000000000007

出力例 2

756221200

スコアの最大値を 998244353 で割った余りを出力してください。