$N$개의 정점으로 이루어진 트리(무방향 사이클이 없는 연결 그래프)가 있다. 정점은 $1$번부터 $N$번까지 번호가 매겨져 있고, 간선은 $1$번부터 $N-1$번까지 번호가 매겨져 있다. 정점은 가중치를 가지고 있다.
아래의 두 쿼리를 수행하는 프로그램을 작성하시오.
1 u v: $u$에서 $v$로 가는 경로에서 최대 연속합(비어있을 수도 있기 때문에 정답은 $0$보다 크거나 같다)을 구해 출력한다.2 u v w: $u$에서 $v$로 가는 경로 상에 있는 모든 정점의 가중치를 $w$로 바꾼다.
입력
첫째 줄에 $N$ ($2 \le N \le 100{,}000$)이 주어진다.
둘째 줄에는 정점의 가중치가 $1$번 정점부터 순서대로 주어진다.
셋째 줄부터 $N-1$개의 줄에는 $i$번 간선이 연결하는 두 정점 번호 $u$와 $v$가 주어진다.
다음 줄에는 쿼리의 개수 $M$ ($1 \le M \le 100{,}000$)이 주어진다.
다음 $M$개의 줄에는 쿼리가 한 줄에 하나씩 주어진다.
정점의 가중치는 절댓값이 $10{,}000$보다 작거나 같은 정수이다.
출력
각각의 쿼리의 결과를 순서대로 한 줄에 하나씩 출력한다.
Sample
Input
5 -3 -2 1 2 3 1 2 2 3 1 4 4 5 3 1 2 5 2 3 4 2 1 2 5
Output
5 9