AT_abc258_c [ABC258C] Rotation
Description
[problemUrl]: https://atcoder.jp/contests/abc258/tasks/abc258_c
正整数 $ N,Q $ と、長さ $ N $ の英小文字からなる文字列 $ S $ が与えられます。
以下で説明されるクエリを $ Q $ 個処理してください。クエリは次の $ 2 $ 種類のいずれかです。
- `1 x`: 「$ S $ の末尾の文字を削除し、先頭に挿入する」という操作を $ x $ 回連続で行う。
- `2 x`: $ S $ の $ x $ 番目の文字を出力する。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ S $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $
それぞれのクエリは以下の形式で与えられる。ここで、$ t $ は $ 1 $ または $ 2 $ である。
> $ t $ $ x $
Output Format
`2 x` の形式の各クエリについて、答えを一行に出力せよ。
Explanation/Hint
### 制約
- $ 2\ \le\ N\ \le\ 5\ \times\ 10^5 $
- $ 1\ \le\ Q\ \le\ 5\ \times\ 10^5 $
- $ 1\ \le\ x\ \le\ N $
- $ |S|=N $
- $ S $ は英小文字からなる。
- `2 x` の形式のクエリが $ 1 $ 個以上与えられる。
- $ N,Q,x $ はすべて整数。
### Sample Explanation 1
$ 1 $ 個目のクエリのとき、$ S $ は `abc` なので $ 2 $ 文字目の `b` を出力します。 $ 2 $ 個目のクエリのとき、$ S $ は `abc` から `cab` に変わります。 $ 3 $ 個目のクエリのとき、$ S $ は `cab` なので $ 2 $ 文字目の `a` を出力します。