数树
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小牛牛在暑假的时候返乡务农。为了响应习主席“绿水青山就是金山银山”的号召开始种树。

但他种树的方式比较奇怪。他会先拿出一些有标号的点,然后他会有一些操作,分为3种:添加一条边,切断一条边,询问他有多少个大小不为一的树。当然,年幼的小牛牛记性不是很好,他有时会连出重边,有时也会切断根本不存在的边。当然,对于这样的操作,无视就可以了。

注意看数据范围

输入描述:


第一行一个n

接下来n行,表示n次操作。

每组操作格式如下

表示将u点和v点连起来

表示将u点和v点之间的边删除

3 表示询问

输出描述:

对每一个3询问输出一个数表示当前大小不为一的树的数量。
示例1

输入

复制
4
1 1926 817
3
2 817 1926
3

输出

复制
1
0

备注:

对于全部数据 ,保证不被忽略的操作1不构成环。