AT_aalc001_e RGB

Description

長さ $ N $ の非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ と、`R`, `G`, `B` からなる長さ $ N $ の文字列 $ S $ が与えられます。 $ S $ の $ i $ 文字目を $ S_i $ とします。 クエリを $ Q $ 個処理してください。クエリは以下の $ 2 $ 種類のいずれかです。 - `1 i x`: $ A_i $ を $ x $ に変更する。 - `2 l r`: $ l\leq i\lt j\lt k\leq r $ かつ $ S_i,S_j,S_k $ がこの順に `R`, `G`, `B` である整数の組 $ (i,j,k) $ すべてに対する $ A_iA_jA_k $ の総和を $ 998244353 $ で割った余りを出力する。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ Q $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $ $ S $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $ 各クエリは以下のいずれかの形式で与えられる。 > $ 1 $ $ i $ $ x $ > $ 2 $ $ l $ $ r $

Output Format

$ 2 $ 種類目のクエリの個数を $ q $ として、 $ q $ 行出力せよ。 $ j $ 行目には、 $ j $ 番目の $ 2 $ 種類目のクエリに対する答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 最初のクエリについて、条件を満たす組は $ (1,2,3),(1,2,5),(1,4,5) $ の $ 3 $ つです。これらに対する積の総和は $ 1\times2\times3+1\times2\times5+1\times4\times5=36 $ です。 ### Constraints - $ 1\leq N\leq 2\times 10^5 $ - $ 1\leq Q\leq 2\times 10^5 $ - $ 0\leq A_i\leq 10^9 $ - $ S $ は `R`, `G`, `B` からなる長さ $ N $ の文字列 - $ 1 $ 種類目のクエリについて、 $ 1\leq i\leq N $ , $ 0\leq x\leq 10^9 $ - $ 2 $ 種類目のクエリについて、 $ 1\leq l\leq r\leq N $ - 入力される数値はすべて整数