AT_pakencamp_2024_day1_m Strong String

Description

以下の条件をすべて満たす英大文字からなる長さ $ 2N $ の文字列 $ S $ としてありえるものの個数を $ 998244353 $ で割った余りを求めよ。 - どの隣接している文字も同じでない。 - 最初の $ N $ 文字と最後の $ N $ 文字が一致しない。具体的には、 $ S_1 \neq S_{N+1}, S_2 \neq S_{N+2}, \ldots, S_N \neq S_{2N} $ のいずれかが成り立つ。 - $ 1 $ 以上 $ K $ 以下の整数 $ i $ について、 $ S_{A_i}=C_i $ を満たす。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ A_1 $ $ C_1 $ $ A_2 $ $ C_2 $ $ \vdots $ $ A_K $ $ C_K $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 例えば、 `TUNA` のような文字列は条件を満たしますが、 `TATA` , `TTTA` のような文字列は条件を満たしません。 ### Sample Explanation 2 残りの部分にどのような文字を入れても $ 2 $ 文字目と $ 3 $ 文字目が同じであるため、条件を満たすことはありません。 ### Sample Explanation 4 答えを $ 998244353 $ で割った余りを求めることを忘れないでください。 ### Constraints - $ 1 \leq N \leq 10^9 $ - $ 0 \leq K \leq 10^5 $ - $ 1 \leq A_i \leq 2N $ ( $ 1 \leq i \leq K $ ) - $ A_i < A_{i+1} $ ( $ 1 \leq i \leq K-1 $ ) - $ C_i $ ( $ 1 \leq i \leq K $ ) はすべて英大文字 - $ N, K, A_i $ ( $ 1 \leq i \leq K $ ) はすべて整数