게임의 꽃

아직 제출이 없습니다시간 제한6초메모리 제한1024 MB

문제

여러분은 삼단논법을 아는가? blackking은 잘 알고 있다.

PS는 게임이다. 트리와 쿼리는 PS의 꽃이다. 따라서 트리와 쿼리는 게임의 꽃이다.

- blackking26

NN개의 정점으로 이루어진 트리(무방향 사이클이 없는 연결 그래프)가 있다. 정점은 11번부터 NN번까지 번호가 매겨져 있고 간선은 11번부터 N1N-1번까지 번호가 매겨져 있다. ii번 정점에는 정수 가중치 A_iA\_{i}가 부여되어 있다.

정점열 v_1,v_2,,v_kv\_{1}, v\_{2}, \cdots, v\_{k}에 대해 v_iv\_{i}v_i+1v\_{i+1} 사이에 간선이 존재하고 A_v_i<A_v_i+1A\_{v\_{i}} < A\_{v\_{i+1}} (1ik1)(1 ≤ i ≤ k-1) 이라면 v_1,v_2,,v_kv\_{1}, v\_{2}, \cdots, v\_{k}은 길이가 kk증가 경로이다.

주어진 트리에서 증가 경로 중 길이가 가장 긴 경로의 길이를 구한 후, 아래의 쿼리를 처리하는 프로그램을 작성하시오.

  • ii xx: ii번 정점의 가중치, 즉 A_iA\_{i}xx로 바꾼 후 증가 경로 중 길이가 가장 긴 경로의 길이를 출력한다.

입력

첫째 줄에 트리의 크기 NN과 쿼리의 개수 MM이 주어진다.

둘째 줄에 각 정점의 가중치 A_iA\_{i}가 공백으로 구분되어 주어진다.

이후 N1N-1개의 줄에는 각 간선이 연결하는 두 정점 번호 u,vu, v가 주어진다.

이후 MM개의 줄에는 쿼리의 정보 i,xi, x가 주어진다.

출력

첫 번째 줄에 주어진 트리에서 증가 경로 중 길이가 가장 긴 경로의 길이를 출력한다.

이후 MM개의 줄에 쿼리의 결과를 한 줄에 하나씩 순서대로 출력한다.

제한

  • 1N,M100,0001 \leq N, M \leq 100,000
  • 1A_i1091 \leq A\_{i} \leq 10^{9}
  • 1u,vN1 \leq u, v \leq N
  • 1iN1 \leq i \leq N
  • 1x1091 \leq x \leq 10^{9}