AT_arc151_b [ARC151B] A < AP
Description
[problemUrl]: https://atcoder.jp/contests/arc151/tasks/arc151_b
$ (1,\ 2,\ \ldots,\ N) $ の順列 $ P\ =\ (P_1,\ P_2,\ \ldots,\ P_N) $ が与えられます。
下記の $ 2 $ つの条件をともに満たす長さ $ N $ の整数列 $ A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) $ の個数を $ 998244353 $ で割ったあまりを出力してください。
- すべての $ i\ =\ 1,\ 2,\ \ldots,\ N $ について、$ 1\ \leq\ A_i\ \leq\ M $。
- 整数列 $ A $ は整数列 $ (A_{P_1},\ A_{P_2},\ \ldots,\ A_{P_N}) $ より辞書順で小さい。
辞書順で小さいとは?整数列 $ X\ =\ (X_1,\ X_2,\ \ldots,\ X_N) $ が 整数列 $ Y\ =\ (Y_1,\ Y_2,\ \ldots,\ Y_N) $ より**辞書順で小さい**とは、下記の $ 2 $ つの条件をともに満たす整数 $ 1\ \leq\ i\ \leq\ N $ が存在することを言います。
- $ 1\ \leq\ j\ \leq\ i-1 $ を満たすすべての整数 $ j $ について、$ X_j\ =\ Y_j $
- $ X_i\ \lt\ Y_i $
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $
Output Format
問題文中の $ 2 $ つの条件をともに満たす整数列 $ A $ の個数を $ 998244353 $ で割ったあまりを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ M\ \leq\ 10^9 $
- $ 1\ \leq\ P_i\ \leq\ N $
- $ i\ \neq\ j\ \implies\ P_i\ \neq\ P_j $
- 入力はすべて整数
### Sample Explanation 1
問題文中の $ 2 $ つの条件をともに満たす整数列 $ A $ は、 $ (1,\ 1,\ 1,\ 2),\ (1,\ 1,\ 2,\ 2),\ (1,\ 2,\ 1,\ 2),\ (1,\ 2,\ 2,\ 2),\ (2,\ 1,\ 1,\ 2),\ (2,\ 1,\ 2,\ 2) $ の $ 6 $ 個です。 例えば、$ A\ =\ (1,\ 1,\ 1,\ 2) $ のとき、$ (A_{P_1},\ A_{P_2},\ A_{P_3},\ A_{P_4})\ =\ (2,\ 1,\ 1,\ 1) $ であり、これは $ A $ より辞書順で大きいです。