봉사 캠프

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

문제

홍수 피해를 입은 마을에 봉사 캠프를 세운다. 마을에는 11번부터 NN번까지 번호가 붙은 집이 NN개 있고, 집과 집은 N1N-1개의 도로로 이어져 있다. 그래서 어느 두 집 사이에도 이동 경로가 정확히 하나뿐이다. 각 도로에는 트럭이 그 도로를 지나는 데 걸리는 시간이 정해져 있다. 캠프는 어느 집의 마당에 세우는데, 관리자는 그 집을 아직 고르지 않았다.

미르코가 트럭 운전을 맡았다. 봉사팀을 캠프에서 각자 일할 집까지 태워다 주는 일이다. 트럭에는 모든 봉사팀이 한 번에 탈 수 있다. 봉사팀은 모두 KK개이고, 각 봉사팀이 가는 집은 서로 다르다.

미르코는 캠프에서 봉사팀 KK개를 한꺼번에 태우고 출발한 다음, 자기가 정한 순서대로 각 집에 봉사팀을 내려 준다. 마지막 봉사팀을 내려 준 뒤에는 캠프로 돌아가지 않고 그 집에 남아 일을 돕는다.

캠프 자리를 정하려면 각 집을 캠프로 삼았을 때의 소요 시간을 알아야 한다. 집마다, 그 집에 캠프를 세웠을 때 미르코가 봉사팀을 모두 데려다 주는 데 걸리는 최소 시간을 구하라.

입력

첫째 줄에 두 정수 NNKK가 주어진다. (1N5000001 \le N \le 500000, 1KN1 \le K \le N)

다음 N1N-1개 줄에는 각각 세 정수 AA, BB, CC가 주어진다. AA번 집과 BB번 집을 잇는 양방향 도로를 트럭이 지나는 데 시간이 CC만큼 걸린다는 뜻이다. (1A,BN1 \le A, B \le N, 1C10000001 \le C \le 1000000)

다음 KK개 줄에는 각 봉사팀이 가는 집의 번호가 한 줄에 하나씩 주어진다. KK개 번호는 모두 다르다.

출력

NN개 줄을 출력한다. ii번째 줄에는 ii번 집에 캠프를 세웠을 때 미르코가 봉사팀을 모두 데려다 주는 데 걸리는 최소 시간을 출력한다.

힌트

첫 번째 예제를 보자. 11번 집에서 출발하면 22번, 44번, 22번, 55번 집 순서로 움직이면 된다. 22번 집에서 출발하면 55번, 22번, 44번 집 순서로 움직일 수 있다.