有一棵拥有 $n$ 个节点的树,每条边都有一个整数边权(不一定为正)。
现在,对于这棵树,可能会发生若干个事件。每个事件是以下两种类型之一:
- 某条边的边权发生改变。
- 一场以节点 $u$ 为中心、半径为 $k$ 的圆形雨落了下来。所有被淋湿的节点集合为 $S = \{x \mid \text{dis}(x, u) \le k\}$,其中 $\text{dis}(i, j)$ 表示树上节点 $i$ 和 $j$ 之间简单路径上的边数($\text{dis}(x, x) = 0$)。你希望从 $S$ 中选择一个连通子图,使得其总权值最大。
对于图 $G = (V, E)$ 和点集 $S \subseteq V$,如果点集 $V' \ (V' \subseteq S)$ 连同原图中两个端点都在 $V'$ 中的所有边构成一个连通子图,则该子图被称为“$S$ 的连通子图”。
连通子图的权值是其包含的所有边的权值之和。
你需要输出每个类型 2 事件的答案。
输入格式
第一行包含两个整数 $n$ 和 $q$($2 \le n \le 10^5$,$1 \le q \le 10^5$)。
接下来的 $n - 1$ 行,每行包含三个整数 $x_i, y_i, w_i$($1 \le x_i, y_i \le n$,$-10^9 \le w_i \le 10^9$,$x_i \neq y_i$),表示树的一条边及其初始权值。输入中的第 $i$ 条边编号为 $i$。
接下来的 $q$ 行格式如下:
- 首先是一个整数 $\text{typ}_i$($\text{typ}_i \in \{1, 2\}$),表示事件的类型。
- 如果 $\text{typ}_i = 1$,则接下来有两个整数 $\text{id}_i$ 和 $v_i$($1 \le \text{id}_i \le n-1$,$-10^9 \le v_i \le 10^9$),表示将第 $\text{id}_i$ 条边的权值修改为 $v_i$。
- 如果 $\text{typ}_i = 2$,则接下来有两个整数 $u_i$ 和 $k_i$($1 \le u_i \le n$,$1 \le k_i \le n$),表示查询的参数。
输出格式
对于每个 $\text{typ}_i = 2$ 的事件,输出一行包含一个整数,即对应查询的答案。
样例
输入样例 1
8 6 1 2 7 1 3 -5 2 4 2 2 5 -100 2 6 -3 5 7 5 6 8 8 2 1 1 2 2 8 1 4 -4 2 7 3 1 6 3 2 7 3
输出样例 1
7 14 10 9
说明
在样例中,初始的树如下图所示:
- 对于第 1 个事件,我们选择点集 $V' = \{1, 2\}$,其权值为 $7$。
- 对于第 2 个事件,我们选择点集 $V' = \{1, 2, 4, 6, 8\}$,其权值为 $2 + 7 + (-3) + 8 = 14$。
- 对于第 3 个事件,我们将边 $(2, 5)$ 的权值修改为 $-4$。
- 对于第 4 个事件,我们选择点集 $V' = \{1, 2, 4, 5, 7\}$,其权值为 $2 + 7 + (-4) + 5 = 10$。
- 对于第 5 个事件,我们将边 $(5, 7)$ 的权值修改为 $3$。
- 对于第 6 个事件,我们选择点集 $V' = \{1, 2, 4\}$,其权值为 $2 + 7 = 9$。