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) $ の順列