#P1042. 插眼 (observe)

插眼 (observe)

Description

小 Z 又开始玩 DoTo 了。

小 Z 想要学习新人辅助燃烧哥的插眼思路。DoTo 中有一种装备叫做侦察守卫,侦察守卫是一种可以提供半径为 K 以内的视野的道具。

小 Z 现在拿到了 B 神可能会出现的一些点的编号,由于 V 社的最新改动,侦察守卫特别贵,已知在节点 i 放置侦察守卫需要 ci 的代价,你需要用最少的代价使得你可以监视 B 神的所有行动。

由于小 Z 刚刚入门,因此 DoTo 的地图只会是一个 N 个节点 N-1 条边的连通图。

请你帮助小 Z 求出最小花费。半径为 K 的定义:所有距离该点为 K的点。

Input

第一行两个整数 N K,定义参见问题描述。

第二行 N 个正整数,第 i 个正整数表示在编号为 i 的点放置侦查守卫的代价 ci。

第三行一个正整数 M ,表示 B 神可能会出现的点的个数。

第四行 M 个正整数,分别表示每个 B 神可能出现的点的编号。

接下来 N-1 行,每行包含两个正整数 u, v,表示存在边 < u, v >。

Output

输出一行一个整数,表示最小花费。

Samples

5 2
1 2 3 4 5
5
1 2 3 4 5
1 2
2 3
3 4
1 5
2

样例 1 解释 一种方案是:在第 3 个单位时间时,各个分别位于点 1, 4, 5, 4, 5。

12 2
8 9 12 6 1 1 5 1 4 8 10 6
10
1 2 3 5 6 7 8 9 10 11
1 3
2 3
3 4
4 5
4 6
4 7
7 8
8 9
9 10
10 11
11 12
10

Limitation

测试点 1,N ≤ 20, K ≤ 5。

测试点 2-3,N ≤ 5 × 10510^5, K = 1。

测试点 4-5,N ≤ 5 × 10510^5, K ≤ 20, N = M。

测试点 6-8,N ≤ 10410^4, K ≤ 20。

测试点 9-10,N ≤ 5×1055 × 10^5, K ≤ 20。