编程题
### 问题描述
一个串 $S$ 是 K-period 的,当且仅当 $\forall 1 \leq i \leq |S|-K$,有 $S_i=S_{i+K}$,特别地,当 $|S| \leq K$ 时,$S$ 是 K-period 的。
给定长度为 $N$ 的字符串 $S$,字符集为小写字母,支持以下 $2$ 种操作:
> 1. 给定 $x,c$,表示将 $S[x]$ 修改为 $c$。
> 2. 给定 $l_1,r_1,K$,询问 $S[l_1,r_1]$ 是否是 K-period 的。
### 输入格式
第一行包含 $2$ 个正整数 $N,Q$,表示字符串长度和操作次数。
第二行给定字符串 $S$。
之后 $Q$ 行,每行第一个数表示 $type$:
如果 $type=1$,之后给定 $2$ 个正整数 $x,c$,表示一次修改。
如果 $type=2$,之后给定 $4$ 个正整数 $l_1,r_1,K$,表示一次询问,保证 $1 \leq l_1 \leq r_1 \leq N$。
### 输出格式
对于每次询问,如果该串是 K-period 输出 `Yes`,否则输出 `No`。
### 样例输入
```text
5 3
abaaa
1 4 b
2 1 5 2
2 1 2 1
```
### 样例输出
```text
Yes
No
```
### 评测数据规模
对于所有测评数据,$1 \leq N,Q \leq 10^5$。