CSES - Path Queries II
  • Time limit: 1.00 s
  • Memory limit: 512 MB

You are given a tree consisting of n nodes. The nodes are numbered 1,2,\ldots,n. Each node has a value.

Your task is to process following types of queries:

  1. change the value of node s to x
  2. find the maximum value on the path between nodes a and b.

Input

The first input line contains two integers n and q: the number of nodes and queries. The nodes are numbered 1,2,\ldots,n.

The next line has n integers v_1,v_2,\ldots,v_n: the value of each node.

Then there are n-1 lines describing the edges. Each line contains two integers a and b: there is an edge between nodes a and b.

Finally, there are q lines describing the queries. Each query is either of the form "1 s x" or "2 a b".

Output

Print the answer to each query of type 2.

Constraints

  • 1 \le n, q \le 2 \cdot 10^5
  • 1 \le a,b, s \le n
  • 1 \le v_i, x \le 10^9

Example

Input:

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

Output:

4 3