#arc144d. [arc144_d]AND OR Equation

[arc144_d]AND OR Equation

题目描述

给定正整数 NNKK。找到满足以下条件的整数序列 bigl(f(0),f(1),ldots,f(2N1)bigr)\\bigl(f(0), f(1), \\ldots, f(2^N-1)\\bigr) 的个数(对 998244353998244353 取模):

  • 对于所有非负整数 xx0x2N10 \leq x \leq 2^N-1),满足 0f(x)K0 \leq f(x) \leq K
  • 对于所有非负整数 xxyy0x,y2N10 \leq x, y \leq 2^N-1),满足 $f(x) + f(y) = f(x \, \mathrm{AND} \, y) + f(x \, \mathrm{OR} \, y)$。

这里的 mathrmAND\\mathrm{AND}mathrmOR\\mathrm{OR} 分别表示按位与和按位或。

约束条件

  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 1K10181 \leq K \leq 10^{18}

输入

从标准输入读入输入数据,输入格式如下:

NN KK

输出

输出满足条件的整数序列的个数(对 998244353998244353 取模)。


示例 1

2 1

示例 1 输出

6

满足条件的整数序列有6种:

  • (0,0,0,0)(0,0,0,0)
  • (0,1,0,1)(0,1,0,1)
  • (0,0,1,1)(0,0,1,1)
  • (1,0,1,0)(1,0,1,0)
  • (1,1,0,0)(1,1,0,0)
  • (1,1,1,1)(1,1,1,1)

示例 2

2 2

示例 2 输出

19

示例 3

100 123456789123456789

示例 3 输出

34663745