给你一堆树,有以下两种操作:
1、求两个点的最近公共祖先,如果两个点不在同一棵树,则输出 $-1$;
2、将一棵树的根变为另一棵树的一个点的儿子。
第一行包含一个正整数 $T$ ,表示有 $T$ 组测试数据。
接下来依次给出每组测试数据。对于每组测试数据:
第一行,包含三个整数 $n, m,q$ ,表示一共有 $n$ 个点,$m$ 条边,$q$ 组询问($1\le n,q \le 100000,0 \le m < n$)。
接下来 $m$ 行,每行 2 个整数 $x, y$ 代表 $x$ 是 $y$ 的父节点。
接下来 $q$ 行,每行 3 个整数 $w, x, y$:
当 $w = 1$ 时,询问 $x, y$ 的最近公共祖先,如果两个点不在同一棵树,则输出 $-1$。
当 $w = 2$ 时,将 $x$ 节点设为 $y$ 节点的父亲,保证 $y$ 节点此时为一棵树的根。
对于每组数据的每组 $w = 1$ 的询问,输出一行,为题目中要求的答案。
1
7 4 4
2 4
2 5
3 6
3 7
1 4 7
2 1 2
2 1 3
1 4 7
-1
1