3442 - 理理思维

通过次数

1

提交次数

1

时间限制 : 1 秒
内存限制 : 512 MB

考试开始了,可是蒟蒻 HansBug 脑中还是一片空白。哦不!准确的说是乱七八糟的。现在首要任务就是帮蒟蒻 HansBug 理理思维。假设 HansBug 的思维是一长串字符串(字符串中包含且仅包含 26 个字母),现在的你,有一张神奇的药方,上面依次包含了三种操作:

1、 获取第 x 到第 y 个字符中字母 k 出现了多少次

2、将第 x 到第 y 个字符全部赋值为字母 k

3、将第 x 到第 y 个字符按照 \text{a} \sim \text{z} 的顺序排序

你欣喜若狂之时,可是他脑细胞和 RP 已经因为之前过度紧张消耗殆尽,眼看试卷最后还有一篇八百字的作文呢,所以这个关键的任务就交给你啦!

输入

第一行包含两个整数 n,m,分别表示 HansBug 的思维所包含的字母个数和药方上操作个数。 第二行包含一个长度为 n 的字符串,表示 HansBug 的思维。

接下来 m 行,每行表示一个操作,格式如下:

  • 1 x y k 表示将第 x 到第 y 个字符中 k 出现的次数输出

  • 2 x y k 表示将第 x 到第 y 个字符全部替换为 k

  • 3 x y 表示将第 x 到第 y 个字符按照 \text{a} \sim \text{z} 的顺序排序

输出

输出为若干行,每行包含一个整数,依次为所有操作 1 所得的结果。

样例

输入

10 5
ABCDABCDCD
1 1 3 A
3 1 5
1 1 3 A
2 1 2 B
1 2 3 B

输出

1
2
2

提示

此题目中大小写不敏感。

保证 1\le n,m \le 50000