AT_ttpc2024_1_l Long Sequence Inversion 2

Description

この問題で「長さ $ K $ の順列」と言った際は「 $ (0, 1, \dots, K - 1) $ の順列」を指すものとします。また、数列 $ X $ の $ k $ 番目の要素(最初の要素を $ 0 $ 番目とする)を $ X[k] $ と表すこととします。 長さ $ L $ の順列 $ P $ と、 $ L $ 個の長さ $ B $ の順列 $ V_{0}, V_{1}, \dots, V_{L - 1} $ が与えられます。 長さ $ B^L $ の数列 $ A $ を以下のように定義します。 > 各 $ 0 である。 数列 $ A $ の転倒数を $ 998244353 $ で割ったあまりを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ L $ $ B $ $ P[0] $ $ P[1] $ $ \cdots $ $ P[L - 1] $ $ V_{0}[0] $ $ V_{0}[1] $ $ \cdots $ $ V_{0}[B - 1] $ $ \vdots $ $ V_{L - 1}[0] $ $ V_{L - 1}[1] $ $ \cdots $ $ V_{L - 1}[B - 1] $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 例えば $ n = 5 $ のとき、 $ N = (1, 0, 1) $ であるので、 $ A[5] = V_{0}[1] \cdot 2^{P[0]} + V_{1}[0] \cdot 2^{P[1]} + V_{2}[1] \cdot 2^{P[2]}=3 $ です。 同様にして計算すると、 $ A = (5, 1, 4, 0, 7, 3, 6, 2) $ となります。 $ A $ の転倒数は $ 14 $ であるので、 $ 14 $ を出力します。 ### Sample Explanation 2 $ A = (9, 1, 13, 5, 10, 2, 14, 6, 11, 3, 15, 7, 8, 0, 12, 4) $ です。 $ A $ の転倒数は $ 60 $ であるので、 $ 60 $ を出力します。 ### Sample Explanation 3 $ 998244353 $ で割ったあまりを求めてください。 ### Constraints - 入力はすべて整数 - $ 1 \leq L $ - $ 2 \leq B $ - $ L \times (B + 1) \leq 5 \times 10^{5} $ - $ P $ は長さ $ L $ の順列である - 各 $ 0 \leq i < L $ について、 $ V_{i} $ は長さ $ B $ の順列である