#SummerP0014. 宗门之争

宗门之争

Description

大陆上有 nn 个宗门,编号从 11nn。编号越大的宗门底蕴越强,因此第 ii 个宗门的底蕴值为 ii

宗门之间可以缔结盟约。若宗门 aa 与宗门 bb 缔结盟约,则双方互为盟友。

如果某个宗门满足以下两个条件,则称它会失去独立地位:

  • 该宗门尚有至少一个盟约对象;
  • 该宗门的所有盟约对象底蕴都比它更强。

这样的宗门会在宗门大会后成为强宗附庸,并退出原本的盟约体系。

你需要处理以下三种操作:

  1. 在宗门 uu 和宗门 vv 之间缔结一条盟约。
  2. 解除宗门 uu 和宗门 vv 之间的一条盟约。
  3. 输出当前盟约体系经过一次独立清算后,仍保持独立地位的宗门数量。

宗门大会的清算过程如下:

每一轮清算开始时,对于每个仍保持独立地位的宗门,如果它当前至少还有一个盟约对象,且它当前所有盟约对象的底蕴都比它更强,那么它会在本轮失去独立地位。

一轮中,所有满足条件的宗门会同时失去独立地位,并退出盟约体系;与它们相关的所有盟约也会在本次清算模拟中被解除。之后,可能又会有新的宗门满足失去独立地位的条件。清算会不断重复,直到没有新的宗门失去独立地位为止。可以证明,该过程一定会在有限轮后结束。

注意:第 33 类操作只是在当前盟约体系上进行一次临时模拟。清算过程中宗门退出、盟约解除,都不会改变真实的盟约体系。之后的操作仍基于清算前的当前盟约体系继续进行。

Format

Input

第一行包含两个整数 nnmm1n21051 \le n \le 2 \cdot 10^50m21050 \le m \le 2 \cdot 10^5),分别表示宗门的数量和初始盟约的数量。

接下来的 mm 行,每行包含两个整数 uuvv1u,vn1 \le u, v \le nuvu \ne v),表示宗门 uu 与宗门 vv 之间存在一条盟约。不会有重复的盟约。

接下来一行包含一个整数 qq1q21051 \le q \le 2 \cdot 10^5),表示操作的数量。

接下来的 qq 行,每行表示一个操作,格式如下:

  • 1 u v1\ u\ v1u,vn1 \le u, v \le nuvu \ne v):在宗门 uu 和宗门 vv 之间缔结一条盟约。保证此时二者之间不存在盟约。
  • 2 u v2\ u\ v1u,vn1 \le u, v \le nuvu \ne v):解除宗门 uu 和宗门 vv 之间的一条盟约。保证此时二者之间存在盟约。
  • 33:输出当前盟约体系经过宗门大会清算后,仍保持独立地位的宗门数量。

保证至少有一次第 33 类操作。

Output

对于每个第 33 类操作,输出一个整数,表示过程结束后仍然保持独立地位的宗门数量,每个答案占一行。

Samples

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

Note

样例 11 中,第一次询问时,盟约为 (1,2),(1,3),(3,4)(1,2), (1,3), (3,4)

第一轮中,宗门 11 的所有盟约对象 2233 都比它强,因此宗门 11 失去独立地位。 解除与宗门 11 相关的盟约后,宗门 33 只剩下盟约对象 44,且 4433 强,因此第二轮宗门 33 失去独立地位。 最终剩下宗门 2244,答案为 22

之后执行加入 (2,3)(2,3)、删除 (3,1)(3,1) 后,当前真实盟约体系变为 (1,2),(2,3),(3,4)(1,2), (2,3), (3,4)。 再次清算后,只有宗门 44 保持独立地位,答案为 11