第一行包含两个正整数 $n,m$,表示共有 $n$ 棵树和 $m$ 个操作。
接下来 $m$ 行,每行包含若干非负整数表示一个操作,操作格式为:
0 l r表示将第 $l$ 棵树到第 $r$ 棵树的生长节点下面长出一个子节点,子节点的标号为上一个 $0$ 号操作叶子标号加 $1$(例如,第一个 $0$ 号操作产生的子节点标号为 $2$),$l$ 到 $r$ 之间的树长出的节点标号都相同。保证 $1 \leq l \leq r \leq n$。
1 l r x表示将第 $l$ 棵树到第 $r$ 棵树的生长节点改到标号为 $x$ 的节点。对于 $i$$(l \leq i \leq r)$ 这棵树,如果标号 $x$ 的点不在其中,那么这个操作对该树不产生影响。保证 $1 \leq l \leq r \leq n$,$x$ 不超过当前所有树中节点最大的标号。
2 x u v询问第 $x$ 棵树中节点 $u$ 到节点 $v$ 点的距离,也就是在第 $x$ 棵树中从节点 $u$ 和节点 $v$ 的最短路上边的数量。保证 $1 \leq x \leq n$,这棵树中节点 $u$ 和节点 $v$ 存在。