输入的第一行包含四个正整数 $N, M, C, K$,其中 $N$ 为节点个数,$M$ 为边数,$C$ 为边的颜色数,$K$ 为操作数。接下来 $N$ 行,每行一个正整数 $v_i$,为节点 $i$ 的权值。之后 $M$ 行,每行三个正整数 $u, v, w$,为一条连接节点 $u$ 和节点 $v$ 的边,颜色为 $w$。满足 $1 ≤ u, v ≤ N$,$0 ≤ w < C$,保证 $u ≠ v$,且任意两个节点之间最多存在一条边(无论颜色)。最后 $K$ 行,每行表示一个操作。每行的第一个整数 $k$ 表示操作类型。
- $k = 0$ 为修改节点权值操作,之后两个正整数 $x$ 和 $y$,表示将节点 $x$ 的权值 $v_x$ 修改为 $y$。
- $k = 1$ 为修改边的颜色操作,之后三个正整数 $u, v$ 和 $w$,表示将连接节点 $u$ 和节点 $v$ 的边的颜色修改为颜色 $w$。满足 $0 ≤ w < C$。
- $k = 2$ 为查询操作,之后三个正整数 $c, u$ 和 $v$,表示查询所有可能在节点 $u$ 到节点 $v$ 之间的由颜色 $c$ 构成的简单路径上的节点的权值的最大值。如果不存在 $u$ 和 $v$ 之间不存在由颜色 $c$ 构成的路径,那么输出“-1”。


