在平面上有 $m$ 个点光源,这些点光源初始时均关闭。与此同时有一张无限个点的无向图,顶点编号依次为 $1,2,\cdots$,初始时没有边。
在点光源上的操作会同步在图中加减边,形式化地,对于某个点光源 $x$,他的开启会导致任意满足 $a\oplus b=x$ 的点之间连接一条无向边(其中 $\oplus$ 表示按位异或运算),而它的关闭则会去掉这些边。
现在我们要进行 $n$ 次操作,操作分为两种:
1 x
:表示翻转点光源 $x$ 的状态,即:若点光源 $x$ 已打开,则将其关闭,否则将其打开;2 x y
:询问图中点 $x$ 和点 $y$ 是否连通。
输入格式
第一行 $2$ 个空格隔开的整数 $n,m$。
下面 $n$ 行,每行一个操作,格式如题目描述所示。
对于操作1,保证 $1\le x\le m$;
对于操作2,保证 $1\le x,y\le m$。
输出格式
对每个操作2,输出一行。若两点连通则输出 Yes
,否则输出 No
。
样例一
input
10 3
1 3
2 1 2
2 1 3
2 3 2
1 2
2 1 3
2 2 3
1 3
2 1 2
2 2 2
output
Yes
No
No
Yes
Yes
No
Yes
样例二
见下发文件。
限制与约定
对于所有数据,有 $1\le m\lt 2^{16}=65536$。
- subtask$1$($30$ 分):保证 $1 \leq n \leq 10^3$;
- subtask$2$($70$ 分):保证 $1 \leq n \leq 5\times 10^4$。
时间限制:$2\texttt{s}$
空间限制:$512\texttt{MB}$
by skyline