编程题
### 问题描述
荣神有一个由 $a-z$ 之间的 $n$ 个字符组成的字符串。字符串的位置从 $1$ 到 $n$ 进行索引。
他的任务是处理 $m$ 个以下类型的操作:
1. 将位置 $k$ 的字符更改为 $x$。
2. 检查从位置 $a$ 到位置 $b$ 的子串是否是回文串。
### 输入格式
第一行输入两个整数 $n$ 和 $m$,表示字符串的长度和操作的数量。
接下来一行包含由 $n$ 个字符组成的字符串。
最后有 $m$ 行描述操作。每行的格式为 $1$ $k$ $x$ 或 $2$ $a$ $b$。
### 输出格式
对于每个操作 $2$,如果子串是回文串则打印 `YES`,否则打印 `NO`。
### 样例输入
```
7 5
aybabtu
2 3 5
1 3 x
2 3 5
1 5 x
2 3 5
```
### 样例输出
```
YES
NO
YES
```
### 评测数据规模
$1 \leq n, m \leq 10^5$,$1 \leq k \leq n$,$1 \leq a \leq b \leq n$。