小 O 与排列

题目背景

小 O 是一个喜爱数学的高中生,他现在在一个与排列有关的问题上陷入了迷茫之中,快来帮帮他! **注意输入格式有修改,第二行与第三行被调换了。(以现在的题面为准)**

题目描述

小 O 有一个长为 $n$ 的排列 $p$,他的好朋友 $\texttt{euei}$ 有一个长为 $n$,值域是 $[1, n]$ 的序列 $a$。 有一天,小 O 忽然想知道是否存在数对 $i, j$,满足 $l \le i, j \le r$,且 $p_{a_i} = a_j$,他轻松地解决了这个问题。但是 $\texttt{euei}$ 有些时候会修改这个序列某个位置的值,还会对多对不同的 $l, r$ 询问上面的问题,这下小 O 就不会了。 聪明的你能帮助小 O 解决这个问题吗?

输入输出格式

输入格式


第一行两个正整数 $n, m$,其中 $m$ 表示修改和询问数之和。 第二行 $n$ 个正整数 $p_1, p_2, \cdots, p_n$,表示排列 $p$。 第三行 $n$ 个正整数 $a_1, a_2, \cdots, a_n$,表示初始的序列 $a$。 接下来 $m$ 行,每行三个正整数,为以下两种格式之一: - `1 i v`,表示将 $a_i$ 修改为 $v$。 - `2 l r`,表示询问是否存在数对 $i, j$,满足 $l \le i, j \le r$,且 $p_{a_i} = a_j$。

输出格式


对于每个询问,如果存在,那么输出 `Yes`,否则输出 `No`。

输入输出样例

输入样例 #1

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

输出样例 #1

Yes
No

说明

**提示** 本题读入量较大,请使用高效的读入方式。 **样例解释** 对于第一组询问,数对 $2, 3$ 满足要求。 对于第二组询问,没有数对满足要求。 **数据范围** 本题共有 $5$ 个子任务,你需要通过一个子任务内的所有测试点才能取得这个子任务的分数。 对于所有数据,$1 \le n,m \le 5\times 10^5$,$1 \le a_i, i, v, l, r \le n$ ,$p_i \neq i$。 | # | 分数 | $n, m$ | 特殊性质 | 时间限制 | | ---- | ---- | ---------------- | ------------------------------- | ----------- | | 1 | 7 | $\leqslant 300$ | | $\text{1s}$ | | 2 | 23 | $\leqslant 2000$ | | $\text{1s}$ | | 3 | 15 | | 没有`1`操作 | $\text{3s}$ | | 4 | 15 | | 每次询问时序列 $a$ 都是一个排列 | $\text{3s}$ | | 5 | 40 | | | $\text{3s}$ | 表格中留空表示该项无特殊限制。