#P6723. wls 的树

wls 的树

Problem Description

wls有一棵有根树,其中的点从$1$到$n$标号,其中$1$是树根。每次wls可以执行两种操作中的一个:

(1)选定一个点$x$,将以$x$为根的子树变成一条按照编号排序的链,其中编号最大的作为新的子树的根(成为原来$x$的父亲节点的儿子,如果原来$x$没有父亲节点则新的子树的根也没有父亲节点)。

(2)查询两个点之间的最短路径上经过了多少边。

Input

第一行一个整数$t$表示数据组数($t\le10$)。

每组数据第一行一个正整数$n$表示树上的点数($1\le n\le 100000$)。

接下来$n-1$行每行两个$1$到$n$之间的正整数表示一条树边。

接下来一行一个正整数$q$表示询问的个数($1\le q\le 200000$)。

接下来$q$行每行表示一个操作。第一种操作格式为$1\ x$,其中$x$为指定的树根。第二种操作格式为$2\ x\ y$,表示查询从$x$到$y$的路径。

Output

对于每个第二种操作,输出一行一个正整数表示答案。

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