수도에는 n개의 교차로와 이들을 잇는 n−1개의 도로가 있습니다. 도로망은 어느 교차로에서 다른 어느 교차로로도 정확히 한 가지 경로로만 갈 수 있도록 이루어져 있습니다. 즉, 도로망 전체가 하나의 트리(tree)를 이룹니다. 일부 교차로에는 중국집이 있습니다.
Kozik은 수도에 살고 싶어 하며, 어느 한 교차로에 있는 집을 고르려고 합니다. 그는 먹는 것은 좋아하지만 많이 걷는 것은 싫어해서, 도시의 모든 중국집을 둘러보되 가장 먼 중국집까지의 거리가 최소가 되는 위치에 집을 두고 싶어 합니다.
Kozik을 도와, 그가 고른 집이 있는 교차로에서 가장 먼 중국집까지의 거리를 구하세요. 인접한 두 교차로 사이의 거리는 1이라고 가정합니다.
첫째 줄에 교차로의 수 n (2≤n≤106)이 주어집니다.
둘째 줄에 n개의 정수 s1,s2,…,sn (0≤si≤1)이 주어집니다. si가 1이면 i번째 교차로에 중국집이 있다는 뜻이고, 0이면 없다는 뜻입니다.
이어지는 n−1개의 줄에는 각각 두 정수 a와 b (1≤a,b≤n)가 주어지며, 이는 교차로 a와 b가 도로로 직접 연결되어 있음을 뜻합니다.
Kozik이 고른 집에서 가장 먼 중국집까지의 거리를 한 줄에 정수 하나로 출력하세요. 도시에 중국집이 하나도 없다면 −1을 출력하세요.