AT_arc228_a [ARC228A] Row and Col swap

Description

$ (1,2,\dots,N) $ の順列 $ P=(P_1,P_2,\dots,P_N),Q=(Q_1,Q_2,\dots,Q_N) $ が与えられます。 $ P,Q $ に対して、以下の操作のいずれか一つを選び行うことを $ M $ 回繰り返します。 - $ 1 \le i < j \le N $ を満たす整数 $ i,j $ を選び、 $ P_i,P_j $ を入れ替える。 - $ 1 \le i < j \le N $ を満たす整数 $ i,j $ を選び、 $ Q_i,Q_j $ を入れ替える。 - $ 1 \le i \le N $ を満たす整数 $ i $ を選び、 $ P_i,Q_i $ を入れ替える。 $ M $ 回の操作終了後に $ P,Q $ がいずれも $ (1,2,\dots,N) $ の順列になるような操作列の個数を $ 998244353 $ で割った余りを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ P_1\ P_2\ \dots\ P_N $ $ Q_1\ Q_2\ \dots\ Q_N $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 例えば、以下のような操作列は条件を満たします。 - $ 3 $ 種類目の操作で $ i = 1 $ を選び、 $ P_1,Q_1 $ を入れ替える。 $ P=(1,2,3),Q=(1,3,2) $ となる。 $ P $ の要素同士を入れ替える $ 3 $ 通りの操作と、 $ Q $ の要素同士を入れ替える $ 3 $ 通りの操作と、上記の $ P_1,Q_1 $ を入れ替える操作の合計 $ 7 $ 通りの操作いずれかひとつからなる操作列が条件を満たします。 ### Constraints - $ 1 \le N,M \le 500 $ - $ P,Q $ は $ (1,2,\dots,N) $ の順列 - 入力される値は全て整数