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) $ は相異なる