407011 - 区间数字判重

给定一个长度为 n 的数组 a[],支持以下两种操作共 q 次: 1.单点修改:1 pos x,将第 pos 个位置的数改为 x; 2.区间排列判定:2 l1 r1 l2 r2,询问两段区间 [l1, r1] 和 [l2, r2] 是否互为排列(即包含完全相同的多重集:每个数值出现次数分别相等,且长度相同)。

输入

第一行两个正整数 n, q(1 ≤ n, q ≤ 10^5),分别表示数组长度和操作次数。 第二行 n 个正整数 a1, a2, ..., an(1 ≤ ai ≤ 10),表示初始数组。 接下来 q 行,每行描述一条操作: 若为 1 pos x,表示将第 pos 个位置修改为 x(1 ≤ pos ≤ n,1 ≤ x ≤ 10^5); 若为 2 l1 r1 l2 r2,表示查询区间 [l1, r1] 和 [l2, r2] 是否互为排列(1 ≤ l1 ≤ r1 ≤ n,1 ≤ l2 ≤ r2 ≤ n)。

输出

对于每条查询操作,如果两段区间互为排列,输出 Yes,否则输出 No。

样例

输入

5 3
1 2 3 2 1
2 1 3 3 5
1 3 5
2 2 4 1 3

输出

Yes
No
时间限制 1 秒
内存限制 128 MB
统计
上一题 下一题