AT_abc470_f [ABC470F] Googol Swaps
Description
英小文字からなる長さ $ N $ の文字列 $ S $ が与えられます。
以下の操作を **ちょうど** $ 10^{100} $ 回実行したあとの $ S $ としてあり得るものの個数を $ 998244353 $ で割ったあまりを求めてください。
- $ 1 $ 以上 $ M $ 以下の整数 $ i $ をひとつ選び、 $ S $ の $ A_i $ 文字目と $ B_i $ 文字目を入れ替える。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ S $ $ A_1 $ $ B_1 $ $ \vdots $ $ A_M $ $ B_M $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
最終的な $ S $ として、以下の $ 6 $ 通りがあり得ます。
- `marii`
- `mirai`
- `miria`
- `ramii`
- `rimai`
- `rimia`
### Constraints
- $ N, M $ は整数
- $ 2 \leq N \leq 2 \times 10^5 $
- $ 1 \leq M \leq 2 \times 10^5 $
- $ S $ は英小文字からなる長さ $ N $ の文字列
- $ A_i, B_i $ は整数
- $ 1 \leq A_i < B_i \leq N $
- $ (A_1, B_1), \dots, (A_M, B_M) $ は相異なる