시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
n개의 섬과 m개의 다리가 있다. 각 다리는 서로 다른 두 섬을 연결하며, 같은 두 섬을 직접 연결하는 다리는 최대 한 개뿐이다. 다리마다 튼튼한 정도가 달라서, 각 다리는 견딜 수 있는 보석 개수의 한계를 가진다.
서로 다른 K개의 섬에는 보석이 하나씩 놓여 있다. 당신은 1번 섬에서 보석을 하나도 들지 않고 출발해, 가능한 한 많은 보석을 주운 뒤 다시 1번 섬으로 돌아오려고 한다. 들고 있는 보석이 어떤 다리의 한계를 넘으면 그 다리는 무너지므로, 모든 다리는 현재 들고 있는 보석 개수가 그 다리의 한계 이하일 때만 건널 수 있다.
이미 지나간 다리나 섬을 여러 번 지나도 된다. 또한 보석이 있는 섬에 도착했더라도 그 보석을 줍지 않고 지나갈 수 있다.
첫째 줄에 n, m, K가 주어진다.
다음 K개의 줄에는 보석이 있는 섬의 번호가 하나씩 주어진다.
다음 m개의 줄에는 다리 하나를 나타내는 세 자연수 a, b, c(1 <= c <= 100)가 주어진다. 이는 a번 섬과 b번 섬을 잇는 다리가 있으며, 그 다리는 최대 c개의 보석까지 견딜 수 있다는 뜻이다. 예컨대 c가 2라면, 보석을 0개, 1개, 또는 2개 들고 있을 때 그 다리를 건널 수 있다. 3개 이상을 들고 건너려고 하면 다리가 무너진다.
1번 섬으로 돌아올 수 있으면서 주울 수 있는 보석의 최대 개수를 출력한다.