問題文
正整数 N,K が与えられます.整数列 bigl(f(0),f(1),ldots,f(2N−1)bigr) であって,以下の条件をすべて満たすものの個数を 998244353 で割った余りを答えてください.
- 任意の非負整数 x (0leqxleq2N−1) に対して 0leqf(x)leqK.
- 任意の非負整数 x,y (0leqx,yleq2N−1) に対して $f(x) + f(y) = f(x \\,\\mathrm{AND}\\, y) + f(x \\,\\mathrm{OR}\\, y)$.
ただし,mathrmAND, mathrmOR はそれぞれビットごとの論理積,論理和を表します.
制約
- 1leqNleq3times105
- 1leqKleq1018
入力
入力は以下の形式で標準入力から与えられます.
N K
出力
条件を満たす整数列の個数を 998244353 で割った余りを出力してください.
入力例 1
2 1
出力例 1
6
条件を満たす整数列は以下の 6 個です.
- (0,0,0,0)
- (0,1,0,1)
- (0,0,1,1)
- (1,0,1,0)
- (1,1,0,0)
- (1,1,1,1)
入力例 2
2 2
出力例 2
19
入力例 3
100 123456789123456789
出力例 3
34663745