贫穷

题目背景

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$。