贫穷
题目背景
LHF 最大的特点就是贫穷。
LHF 最大的爱好就是看购物节目。
这天他又在看购物节目了。
他在节目里看到一款新型文本编辑器,~~除了价钱以外~~非常适合他这样的穷人使用。
因为……它能够计算打印成本!
(这里的打印成本是与出现过的字母的种类数相关的)
他十分心动,要求你实现这个功能。
题目描述
这个文本编辑器支持以下操作:
- $\texttt{I x c}$,在第 $x$ 个字母后面插入一个 $c$。
- $\texttt{D x}$,删除第 $x$ 个字母。
- $\texttt{R x y}$,反转当前文本中的区间 $[x,y]$。
- $\texttt{P x}$,输出初始文本中第 $x$ 个字母在当前文本中的位置。特别地,若不存在,输出 $0$。
- $\texttt{T x}$,输出当前文本中第 $x$ 个字母。
- $\texttt{Q x y}$,输出当前文本中区间 $[x,y]$ 内出现过的字母的种类数。
输入输出格式
输入格式
第一行,两个整数 $n,m$,分别表示初始文本长度和操作个数。
第二行,一个长度为 $n$ 的字符串,表示初始文本。
以下 $m$ 行,每行表示一个操作。
输出格式
对于所有需要输出的操作,输出结果。
输入输出样例
输入样例 #1
12 6
kimiwakawaii
R 2 4
P 4
D 1
I 0 w
T 3
Q 3 10
输出样例 #1
2
m
5
说明
**数据范围:**
对于 $20\%$ 的数据,$n \le 100$。
对于 $50\%$ 的数据,$n \le 10000$。
对于 $100\%$ 的数据,$1 \le n,m \le 10^5$,文本涉及的字母仅包含小写字母。
**样例解释:**
1. 文本不变,但初始文本中第 $2$ 个字母与第 $4$ 个字母的位置交换。
2. 当前第 $2$ 个字母是初始文本的第 $4$ 个字母。
3. 文本变为 $\texttt{imiwakawaii}$。
4. 文本变为 $\texttt{wimiwakawaii}$。
5. 这个字母为 $\texttt{m}$。
6. 这段文本为 $\texttt{miwakawa}$,包含的字符种类的集合为 $\{\texttt{a},\texttt{i},\texttt{k},\texttt{m},\texttt{w}\}$,元素个数为 $5$。