G - Many Good Tuple Problems Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 650

問題文

この問題における良い数列の組の定義は D 問題と同じです。

N 以下の正整数からなる長さ M の数列の組 (S, T) = ((S_1, S_2, \dots, S_M), (T_1, T_2, \dots, T_M))良い数列の組である とは、(S, T) が次の条件を満たすことを言います。

  • 0,1 からなる長さ N の数列 X = (X_1, X_2, \dots, X_N) であって次の条件を満たすものが存在する。
    • i=1, 2, \dots, M それぞれについて、X_{S_i} \neq X_{T_i} が成立する。

N 以下の正整数からなる長さ M の数列の組 (A, B) = ((A_1, A_2, \dots, A_M), (B_1, B_2, \dots, B_M)) としてあり得るものは N^{2M} 通りありますが、そのような数列の組のうち良い数列の組であるものの個数を 998244353 で割った余りを求めてください。

制約

  • 1 \leq N \leq 30
  • 1 \leq M \leq 10^9
  • N, M は整数

入力

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

N M

出力

N 以下の正整数からなる長さ M の数列の組のうち、良い数列の組であるものの個数を 998244353 で割った余りを出力せよ。


入力例 1

3 2

出力例 1

36

例えば A=(1,2), B=(2,3) のとき (A, B) は良い数列の組です。X=(0,1,0) とすると、X0,1 からなる長さ N の数列で、 X_{A_1} \neq X_{B_1} かつ X_{A_2} \neq X_{B_2} を満たします。よって、(A,B) は良い数列の組としての条件を満たしています。
良い数列の組は全部で 36 個あるので、これを出力します。


入力例 2

3 3

出力例 2

168

入力例 3

12 34

出力例 3

539029838

入力例 4

20 231104

出力例 4

966200489

Score : 650 points

Problem Statement

The definition of a good pair of sequences in this problem is the same as in Problem D.

A pair of sequences of length M consisting of positive integers at most N, (S, T) = ((S_1, S_2, \dots, S_M), (T_1, T_2, \dots, T_M)), is said to be a good pair of sequences when (S, T) satisfies the following condition.

  • There exists a sequence X = (X_1, X_2, \dots, X_N) of length N consisting of 0 and 1 that satisfies the following condition:
    • X_{S_i} \neq X_{T_i} for each i=1, 2, \dots, M.

Among the N^{2M} possible pairs of sequences of length M consisting of positive integers at most N, (A, B) = ((A_1, A_2, \dots, A_M), (B_1, B_2, \dots, B_M)), find the number, modulo 998244353, of those that are good pairs of sequences.

Constraints

  • 1 \leq N \leq 30
  • 1 \leq M \leq 10^9
  • N and M are integers.

Input

The input is given from Standard Input in the following format:

N M

Output

Print the number, modulo 998244353, of pairs of sequences of length M consisting of positive integers at most N that are good pairs of sequences.


Sample Input 1

3 2

Sample Output 1

36

For example, if A=(1,2), B=(2,3), then (A, B) is a good pair of sequences. Indeed, if we set X=(0,1,0), then X is a sequence of length N consisting of 0 and 1 that satisfies X_{A_1} \neq X_{B_1} and X_{A_2} \neq X_{B_2}. Thus, (A, B) satisfies the condition of being a good pair of sequences.
There are a total of 36 good pairs of sequences, so print this number.


Sample Input 2

3 3

Sample Output 2

168

Sample Input 3

12 34

Sample Output 3

539029838

Sample Input 4

20 231104

Sample Output 4

966200489