AT_npcapc_2024_j Again Permutation Problem

Description

$ (1,2,\dots,N) $ の順列が $ M $ 個与えられます。 $ i $ 個目の順列は $ P_i = (P_{i,1},P_{i,2},\dots,P_{i,N}) $ です。 あなたは数列 $ Q=(1,2,\dots,N) $ を持っています。そして、以下の操作を $ 0 $ 回以上行うことが出来ます。 - $ 1 \le i \le M $ を満たす整数 $ i $ を選び、 $ Q $ を $ (Q_{P_{i,1}},Q_{P_{i,2}},\dots,Q_{P_{i,N}}) $ に更新する。 操作後の $ Q $ としてあり得る数列全てに対する転倒数の総和を $ 998244353 $ で割ったあまりを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ P_{1,1} $ $ P_{1,2} $ $ \dots $ $ P_{1,N} $ $ P_{2,1} $ $ P_{2,2} $ $ \dots $ $ P_{2,N} $ $ \vdots $ $ P_{M,1} $ $ P_{M,2} $ $ \dots $ $ P_{M,N} $

Output Format

答えを出力せよ。

Explanation/Hint

### 部分点 この問題には部分点が設定されている。 - $ N \le 6 $ を満たすデータセットに正解した場合 $ 10 $ 点が与えられる。 ### Sample Explanation 1 あなたが得ることの出来る数列 $ Q $ は $ (1,2,3),(2,3,1),(3,1,2) $ の $ 3 $ 個です。それぞれの転倒数は $ 0,2,2 $ なので答えは $ 0 + 2 + 2 = 4 $ です。 ### Constraints - $ 1 \le N \le 30 $ - $ 1 \le M \le 30 $ - $ P_i=(P_{i,1},P_{i,2},\dots,P_{i,N}) $ は $ (1,2,\dots,N) $ の順列