AT_agc073_a [AGC073A] Chords and Checkered
Description
整数 $ L,K $ 及び長さ $ N $ の非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます. ここで, $ 2K < L $ 及び $ 0 \leq A_1 < A_2 < \cdots < A_N < L $ が保証されます.
周の長さが $ L $ の円を考えます. この円の適当な点を基準点としてとり,そこから円周上を距離 $ x $ だけ時計回りに進んだ場所を座標 $ x $ の点と呼ぶことにします. また,各 $ i $ ( $ 1 \leq i \leq N $ ) について, 座標 $ A_i $ の点と座標 $ A_i+K $ の点を結ぶ弦を考え,これを弦 $ i $ と呼ぶことにします.
弦の集合 $ s $ に対して,以下の手順で **スコア**を定めます.
- $ s $ に含まれる弦をすべて描く.描いた弦によって円がいくつかの領域に分かれるので,それらを白と黒で塗る. まず円の中心が含まれる領域を白く塗り,残りの領域は,(長さ正の線分で)隣接する領域の色が異なるように塗る. このような塗り方は常に一意に存在することが証明できる. ここで黒く塗られた領域の個数をスコアとする.
$ s $ としてあり得る集合は $ 2^N $ 通りあります. これらすべてに対するスコアの総和を $ 998244353 $ で割ったあまりを求めてください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ L $ $ K $ $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
答えを出力せよ.
Explanation/Hint
### Sample Explanation 1
- 弦を $ 1 $ つも選ばない場合,スコアは $ 0 $ です.
- 弦 $ 1 $ を選ぶ場合,スコアは $ 1 $ です.
- 弦 $ 2 $ を選ぶ場合,スコアは $ 1 $ です.
- 弦 $ 1,2 $ を選ぶ場合,スコアは $ 2 $ です.
よって,これらの合計である $ 4 $ が答えです.
### Constraints
- $ 1 \leq K $
- $ 2K < L \leq 10^9 $
- $ 1 \leq N \leq 250000 $
- $ 0 \leq A_1 < A_2 < \cdots < A_N < L $
- 入力はすべて整数