你正在玩一个棋盘游戏,棋盘上的方格编号从 $0$ 到 $10^9$(包含 $0$ 和 $10^9$),共有 $N$ 个编号从 $1$ 到 $N$ 的棋子。每个棋子位于其中一个方格内,多个棋子可能位于同一个方格。初始时,棋子 $i$ 位于方格 $T_i$。两个棋子之间的距离定义为第一个棋子所在的方格编号与第二个棋子所在的方格编号之差的绝对值。
对于一组棋子 $S$,我们按如下规则检查它们是否“间隔良好”(well-separated):
- 令 $A$ 为 $S$ 中的棋子按所在方格编号从小到大排序后的列表。如果多个棋子位于同一个方格,则这些棋子按棋子编号从小到大排序。
- 如果 $A$ 中的棋子少于三个,则这些棋子是间隔良好的。
- 否则,当且仅当 $A$ 中相邻两个棋子之间的距离相等时,这些棋子才是间隔良好的。如果两个棋子在 $A$ 中的索引相差 $1$,则称它们是相邻的。
你需要执行 $Q$ 次操作,操作类型如下:
- 将棋子 $X$ 移动到方格 $Y$。
- 报告编号从 $L$ 到 $R$(包含 $L$ 和 $R$)的棋子集合是否间隔良好。
输入格式
输入的第一行包含两个整数 $N$ 和 $Q$ ($2 \le N \le 100\,000$; $1 \le Q \le 100\,000$),分别表示棋子的数量和操作的数量。下一行包含 $N$ 个整数 $T_i$ ($0 \le T_i \le 10^9$),表示棋子的初始方格位置。接下来的 $Q$ 行,每行包含以下格式之一的操作:
- $1\ X\ Y$ ($1 \le X \le N$; $0 \le Y \le 10^9$) 将棋子 $X$ 移动到方格 $Y$。
- $2\ L\ R$ ($1 \le L < R \le N$) 输出编号从 $L$ 到 $R$(包含 $L$ 和 $R$)的棋子集合是否间隔良好。
保证至少会进行一次第二类型的操作。
输出格式
对于每个第二类型的操作,按输入顺序,在一行中输出字符串 “YES” 或 “NO”,表示编号从 $L$ 到 $R$ 的棋子集合是否间隔良好。
样例
样例输入 1
5 7 1 1 1 10 1 2 1 3 2 1 5 1 5 4 1 3 7 2 2 4 2 2 5 2 4 5
样例输出 1
YES NO NO YES YES
说明 1
- 初始时,棋子位于方格 $[1, 1, 1, 10, 1]$。
- 对于第一次操作,在 $A = [1, 2, 3]$ 中,相邻棋子的距离为 $0$ 和 $0$。因此,这些棋子是间隔良好的。
- 对于第二次操作,在 $A = [1, 2, 3, 5, 4]$ 中,相邻棋子的距离为 $0, 0, 0$ 和 $9$。因此,这些棋子不是间隔良好的。
- 在第三次和第四次操作后,棋子位于方格 $[1, 1, 7, 10, 4]$。
- 对于第五次操作,在 $A = [2, 3, 4]$ 中,相邻棋子的距离为 $6$ 和 $3$。因此,这些棋子不是间隔良好的。
- 对于第六次操作,在 $A = [2, 5, 3, 4]$ 中,相邻棋子的距离为 $3, 3$ 和 $3$。因此,这些棋子是间隔良好的。
- 对于第七次操作,$A = [5, 4]$ 少于三个棋子。根据定义,这些棋子是间隔良好的。