配点 : 700 点
問題文
正整数 N,K が与えられます.整数列 (f(0),f(1),…,f(2N−1)) であって,以下の条件をすべて満たすものの個数を 998244353 で割った余りを答えてください.
- 任意の非負整数 x (0≤x≤2N−1) に対して 0≤f(x)≤K.
- 任意の非負整数 x,y (0≤x,y≤2N−1) に対して $f(x) + f(y) = f(x \,\mathrm{AND}\, y) + f(x \,\mathrm{OR}\, y)$.
ただし,AND, OR はそれぞれビットごとの論理積,論理和を表します.
制約
- 1≤N≤3×105
- 1≤K≤1018
入力
入力は以下の形式で標準入力から与えられます.
N K
出力
条件を満たす整数列の個数を 998244353 で割った余りを出力してください.
2 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
19
100 123456789123456789
34663745