#arc144d. [arc144_d]AND OR Equation

[arc144_d]AND OR Equation

Problem Statement

You are given positive integers NN and KK. Find the number, modulo 998244353998244353, of integer sequences bigl(f(0),f(1),ldots,f(2N1)bigr)\\bigl(f(0), f(1), \\ldots, f(2^N-1)\\bigr) that satisfy all of the following conditions:

  • 0leqf(x)leqK0\\leq f(x)\\leq K for all non-negative integers xx (0leqxleq2N10\\leq x \\leq 2^N-1).
  • $f(x) + f(y) = f(x \\,\\mathrm{AND}\\, y) + f(x \\,\\mathrm{OR}\\, y)$ for all non-negative integers xx and yy (0leqx,yleq2N10\\leq x, y \\leq 2^N-1)

Here, mathrmAND\\mathrm{AND} and mathrmOR\\mathrm{OR} denote the bitwise AND and OR, respectively.

Constraints

  • 1leqNleq3times1051\\leq N\\leq 3\\times 10^5
  • 1leqKleq10181\\leq K\\leq 10^{18}

Input

Input is given from Standard Input in the following format:

NN KK

Output

Print the number, modulo 998244353998244353, of integer sequences that satisfy the conditions.


Sample Input 1

2 1

Sample Output 1

6

The following six integer sequences satisfy the conditions:

  • (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)

Sample Input 2

2 2

Sample Output 2

19

Sample Input 3

100 123456789123456789

Sample Output 3

34663745