AT_abc473_f [ABC473F] A/AB Insertion

Description

長さ $ N $ の `A`, `B` からなる文字列 $ S $ が与えられます。 以下のクエリを合計 $ Q $ 個処理してください。 > 1 $ i $ $ c $ タイプ $ 1 $ : $ S $ の $ i $ 文字目を $ c $ に変更する。 > 2 $ l $ $ r $ タイプ $ 2 $ : 文字列 $ T $ を、現在の文字列 $ S $ の $ l $ 文字目から $ r $ 文字目までを抜き出した文字列とする。 文字列 $ T $ が以下の操作で得られる文字列であれば `Yes` 、そうでなければ `No` と出力する。 > - 空文字列から始め、以下の $ 2 $ つの操作を好きな順序で $ 0 $ 回以上何回でも行う。 > - 文字列の(先頭・末尾を含めた)任意の箇所を選択し、そこに `A` を挿入する。 > - 文字列の(先頭・末尾を含めた)任意の箇所を選択し、そこに `AB` を挿入する。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S $ $ Q $ $ {\rm Query}_1 $ $ {\rm Query}_2 $ $ \vdots $ $ {\rm Query}_Q $ 但し、 $ {\rm Query}_i $ は $ i $ 個目のクエリを表し、クエリの入力は問題文中の形式に従う。

Output Format

タイプ $ 2 $ のクエリが入力されるごとに、答えを $ 1 $ 行に出力せよ。

Explanation/Hint

### Sample Explanation 1 この入力には $ 6 $ 個のクエリが含まれます。 - 最初、 $ S= $ `AABBAABABB` です。 - $ 1 $ つ目のクエリについて、 $ S $ の $ 1 $ 文字目から $ 10 $ 文字目までを抜き出した $ T= $ `AABBAABABB` は以下の手順を踏むことで得ることができるため、 `Yes` と出力します。 - 空文字列から始める。 - 空文字列の先頭に `AB` を挿入し、文字列が `AB` となる。 - `AB` の $ 1 $ 文字目の直後に `AB` を挿入し、文字列が `AABB` となる。 - `AABB` の末尾に `AB` を挿入し、文字列が `AABBAB` となる。 - `AABBAB` の $ 5 $ 文字目の直後に `AB` を挿入し、文字列が `AABBAABB` となる。 - `AABBAABB` の $ 7 $ 文字目の直後に `AB` を挿入し、文字列が `AABBAABABB` となる。 - $ 2 $ つ目のクエリについて、 $ S $ の $ 5 $ 文字目を `B` に変更します。その結果、 $ S= $ `AABBBABABB` となります。 - $ 3 $ つ目のクエリについて、 $ S $ の $ 1 $ 文字目から $ 10 $ 文字目までを抜き出した $ T= $ `AABBBABABB` は問題文中の操作では得られないため、 `No` と出力します。 - $ 4 $ つ目のクエリについて、 $ S $ の $ 6 $ 文字目から $ 8 $ 文字目までを抜き出した $ T= $ `ABA` は問題文中の操作で得ることができるため、 `Yes` と出力します。 - $ 5 $ つ目のクエリについて、 $ S $ の $ 3 $ 文字目を `A` に変更します。その結果、 $ S= $ `AAABBABABB` となります。 - $ 6 $ つ目のクエリについて、 $ S $ の $ 1 $ 文字目から $ 10 $ 文字目までを抜き出した $ T= $ `AAABBABABB` は問題文中の操作で得ることができるため、 `Yes` と出力します。 ### Constraints - $ N $ は $ 1 \le N \le 5 \times 10^5 $ を満たす整数 - $ S $ は `A`, `B` からなる長さ $ N $ の文字列 - $ Q $ は $ 1 \le Q \le 2 \times 10^5 $ を満たす整数 - 与えられるクエリはタイプ $ 1,2 $ のいずれかである - タイプ $ 1 $ のクエリは以下の制約を満たす - $ i $ は $ 1 \le i \le N $ を満たす整数 - $ c $ は `A`, `B` のいずれか - タイプ $ 2 $ のクエリは以下の制約を満たす - $ l,r $ は $ 1 \le l \le r \le N $ を満たす整数