M - Majority and Permutation Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 100

問題文

1 以上 2N-1 以下の奇数からなる長さ M の整数列 (A_1,A_2,\dots,A_M) が与えられます。

(1,2,\dots,2N) の順列 P=(P_1,P_2,\dots,P_{2N}) のうち、以下の条件を満たすものの個数を 998244353 で割った余りを求めてください。

  • 0, 1 のみからなる長さ 2N の文字列 S であって、以下の条件を全て満たすものが存在する。
    • SN 文字の 0N 文字の 1 からなる文字列である。
    • i=1,2,\dots,M に対し、S1,2,\dots,A_i 文字目に登場する文字のうち、最も多いのは 0 である。
    • i=1,2,\dots,M に対し、SP_1,P_2,\dots,P_{A_i} 文字目に登場する文字のうち、最も多いのは 0 である。

制約

  • 入力は全て整数
  • 1 \leq M \leq N \leq 10^{5}
  • 1 \leq A_1 < A_2 < \dots < A_M \leq 2N-1
  • A_i は奇数

入力

入力は以下の形式で標準入力から与えられる。

N M
A_1 A_2 \dots A_M

出力

答えを 1 行に出力せよ。


入力例 1

2 2
1 3

出力例 1

14

例えば P=(2,1,3,4) の場合、S= 0011 とすると 3 つの条件を全て満たす文字列となっています。

一方、P=(4,3,2,1) の場合、3 つの条件を全て満たす長さ 4 の文字列は存在しません。


入力例 2

3 1
3

出力例 2

684