编程题
### 问题描述
在一个小镇上,街道的布局可以被看作一个无向图,每个交叉口是一个节点,每条街道是两个交叉口之间的一条边。镇长注意到,某些关键的交叉口如果被封锁,会导致小镇的某些部分与其他部分隔离。这些关键交叉口称为割点。
镇长有着一套连续的建设方案,你需要帮助镇长确定他的每次建设后小镇割点的情况。
### 输入格式
第一行包含两个整数 $n$ 和 $m$,分别代表交叉路口的数量和街道的数量。
接下来的 $m$ 行,每行包含两个整数 $a$ 和 $b$,表示交叉口 $a$ 和 $b$ 之间有一条街道。交叉口的编号从 $1$ 到 $n$。
第 $m+1$ 行输入一个正整数 $v$,表示镇长有 $v$ 条建设方案。
接下来的 $v$ 行,每行输入3个整数 $t$,$x$,$y$。当 $t=0$ 时表示删除 $x$ 和 $y$ 之间直接相连的所有道路。当 $t=1$ 时表示在 $x$ 和 $y$ 之间增加一条直接相连的道路。
注意:所有的建设方案之间是连续的,例如第一次操作删除了 $1$ 和 $2$ 之间直接相连的道路,那么下一步修改方案中 $1$ 和 $2$ 之间就不再直接相连。
### 输出格式
当城镇道路输入完成后,在第一行中按照从小到大的顺序输出初始的割点编号,两个编号之间以空格分隔。
对于每一条建设方案,在新的一行中按照从小到大的顺序输出仍然存在的割点编号,两个编号之间以空格分隔。
如果没有割点或图不是连通图,则在该行输出 $0$。
### 样例输入
```
3 3
1 2
2 3
3 1
3
0 1 2
0 2 3
1 1 2
```
### 样例输出
```
0
3
0
1
```
### 测评数据规模
$1\le n\le 10^3$,$1\le m\le 10^4$,$1\le v\le100$。