luogu#P5217. 贫穷

贫穷

题目背景

LHF 最大的特点就是贫穷。
LHF 最大的爱好就是看购物节目。

这天他又在看购物节目了。
他在节目里看到一款新型文本编辑器,除了价钱以外非常适合他这样的穷人使用。

因为……它能够计算打印成本!
(这里的打印成本是与出现过的字母的种类数相关的)

他十分心动,要求你实现这个功能。

题目描述

这个文本编辑器支持以下操作:

  • I x c\texttt{I x c},在第 xx 个字母后面插入一个 cc
  • D x\texttt{D x},删除第 xx 个字母。
  • R x y\texttt{R x y},反转当前文本中的区间 [x,y][x,y]
  • P x\texttt{P x},输出初始文本中第 xx 个字母在当前文本中的位置。特别地,若不存在,输出 00
  • T x\texttt{T x},输出当前文本中第 xx 个字母。
  • Q x y\texttt{Q x y},输出当前文本中区间 [x,y][x,y] 内出现过的字母的种类数。

输入格式

第一行,两个整数 n,mn,m,分别表示初始文本长度和操作个数。
第二行,一个长度为 nn 的字符串,表示初始文本。
以下 mm 行,每行表示一个操作。

输出格式

对于所有需要输出的操作,输出结果。

12 6
kimiwakawaii
R 2 4
P 4
D 1
I 0 w
T 3
Q 3 10
2
m
5

提示

数据范围:

对于 20%20\% 的数据,n100n \le 100
对于 50%50\% 的数据,n10000n \le 10000
对于 100%100\% 的数据,1n,m1051 \le n,m \le 10^5,文本涉及的字母仅包含小写字母。

样例解释:

  1. 文本不变,但初始文本中第 22 个字母与第 44 个字母的位置交换。
  2. 当前第 22 个字母是初始文本的第 44 个字母。
  3. 文本变为 imiwakawaii\texttt{imiwakawaii}
  4. 文本变为 wimiwakawaii\texttt{wimiwakawaii}
  5. 这个字母为 m\texttt{m}
  6. 这段文本为 miwakawa\texttt{miwakawa},包含的字符种类的集合为 $\{\texttt{a},\texttt{i},\texttt{k},\texttt{m},\texttt{w}\}$,元素个数为 55