There are $N$ cities numbered from $1$ to $N$. They are connected by $N-1$ roads so that between any two cities there is exactly one path. In other words, the cities and roads form a tree.
A gang of thieves simultaneously robbed the shops of $K$ distinct cities. The crime happened just now, so the thieves have not fled yet, but from now on they may move freely along the roads.
Knowing this, the police can block the entrances of some cities. Once all entrances of a city are blocked, thieves can no longer enter that city; however, leaving a city can never be blocked. After blocking, the police search every city where a thief could be.
A thief could be in a city if, starting from one of the $K$ robbed cities, that city is reachable while passing only through cities whose entrances are not blocked. The robbed cities already contain a thief, so they must always be searched.
The police budget is limited. Searching one city costs $M$, and blocking all roads leading into city $i$ costs $a_i$. The police want to choose which cities to seal off so that the total cost of the operation is as small as possible.
Find the minimum possible cost of the search operation.
The first line contains three integers $N$, $K$, and $M$: the number of cities, the number of robbed cities, and the cost of searching one city.
Each of the next $N-1$ lines contains two space-separated integers $b_i$ and $c_i$, the numbers of the two cities joined by the $i$-th road.
The next line contains $N$ integers; the $i$-th integer $a_i$ is the cost of blocking all entrances into city $i$.
The last line contains $K$ distinct integers, the numbers of the robbed cities.
Print a single integer: the minimum possible cost of the search operation.