問題文
(1,2,dots,N) の順列 Q=(Q1,Q2,dots,QN) に対する以下の値を f(Q) と置きます。
1lei<jleN かつ Qi>Qj を満たす整数の組 (i,j) 全てに対する j−i の総和
(1,2,dots,N) の順列 P=(P1,P2,dots,PN) が与えられます。
以下の操作を M 回繰り返します。
- 1leilejleN を満たす整数の組 (i,j) を選ぶ。Pi,Pi+1,dots,Pj を反転する。厳密には、Pi,Pi+1,dots,Pj の値を Pj,Pj−1,dots,Pi の値に同時に置き換える。
操作を行う方法は left(fracN(N+1)2right)M 通りありますが、その全てに対して操作終了後の f(P) を求めたとします。
これらの left(fracN(N+1)2right)M 個の値の総和を 998244353 で割ったあまりを求めてください。
制約
- 1leN,Mle2times105
- (P1,P2,dots,PN) は (1,2,dots,N) の順列である。
入力
入力は以下の形式で標準入力から与えられる。
N M
P1 P2 dots PN
出力
答えを 1 行に出力せよ。
入力例 1
2 1
1 2
出力例 1
1
あり得る操作は以下の 3 通りです。
- (i,j)=(1,1) を選ぶ。P=(1,2) となる。f(P)=0 である。
- (i,j)=(1,2) を選ぶ。P=(2,1) となる。f(P)=1 である。
- (i,j)=(2,2) を選ぶ。P=(1,2) となる。f(P)=0 である。
よって、答えは 0+1+0=1 です。
入力例 2
3 2
3 2 1
出力例 2
90
入力例 3
10 2023
5 8 1 9 3 10 4 7 2 6
出力例 3
543960046