#547. 攀比

攀比

攀比

题目描述

nn 个人,qq 组询问。一开始这 nn 个人之间有 mm 组关系,每组关系为一个二元组 (x,y)(x,y) 表示 x,yx,y 初始为朋友关系。

定义一个人的强度为其编号,定义一个人所处的朋友圈为和他有间接或直接朋友关系的人的集合(包括他自己)。如果把每个人视作图上一个点,朋友关系视作边,那么朋友圈就是一个连通块对应的点集。

有 3 种操作:

  • 1 u v(1u,vn,uv)1 \space u \space v (1 \le u,v \le n,u \ne v) 表示 uuvv 变成了朋友。保证 uuvv 在此次操作之前不是朋友。
  • 2 u v(1u,vn,uv)2 \space u \space v (1 \le u,v \le n,u \ne v) 表示 uuvv 发生了矛盾,不是朋友了。保证 uuvv 在此次操作之前是朋友。
  • 33 表示执行以下操作直至不可再执行为止。在每个 大小大于 1 的朋友圈中进行一次攀比,找到强度最小的人,将这个人暂时踢出朋友圈(即所有和这个人是朋友的暂时删去和这个人的朋友关系,同时因为这个人被踢出,一个朋友圈可能会暂时分裂成多个朋友圈)。在所有操作执行完毕后,请你输出有多少人没有被踢出朋友圈。注意,每个 3 操作之间彼此独立。即删人只是暂时的,这次操作结束之后所有被删的人连同边会恢复操作三之前的状态。

输入格式

第一行两个正整数 n,mn,m,意义见题目描述。

接下来 mm 行每行两个正整数 u,vu,v 表示 u,vu,v 两个人一开始是朋友。

接下来一行一个正整数 qq 代表操作次数。

接下去 qq 行每行一个操作,具体的格式参考题目描述。

输出格式

对于每个 33 操作,输出一行一个正整数,即最后没有被踢出朋友圈的人数。

样例

Input 1

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

Output 1

2
1

Input 2

4 3
2 3
3 4
4 1
1
3

Output 2

1

提示说明

  • 对于 100%100\% 的数据,2n,m,q105,1u,vn,uv2\leq n,m,q\leq 10^5,1\le u,v\le n,u\ne v

Constraints

子任务 n,m,qn,m,q\le 特殊性质 分值
11 1010 N/A 2020
22 500500 1010
33 10510^5 保证每个点度数时刻不超过 22
44 保证每个点度数时刻不超过 33
55 没有操作 22
66 N/A 4040