作为 Dregoheap 这片失落之地的最后一位守护者,你负责保护该地区的居民。
Dregoheap 由 $N$ 座城市和 $M$ 条道路组成,每条道路都是双向的,连接着恰好 2 座城市。白天,你会在 Dregoheap 周围巡逻。当你身处某座城市 $i$ 时,可能会收到来自另一座城市 $j$ 的紧急求救信号。作为唯一的守护者,你当然需要尽快前往城市 $j$ 并拯救那里的居民。
幸运的是,在 Dregoheap 中有 $K$ 座城市拥有未点燃的篝火。一旦篝火被点燃,你就可以从该篝火传送至任何其他已点燃的篝火。然而,由于资源有限,你最多只能点燃 $L$ 座篝火。
在以最优方式点燃篝火后,你想要知道在最坏情况下,为了响应一次紧急事件,你需要行进的最长距离是多少。
注意,你的巡逻路线是随机的,紧急事件的发生也是随机的。你可以假设在城市内部移动是免费的。此外,在篝火之间传送也是免费的。你只会在身处某座城市时收到求救信号,且不会同时发生两起紧急事件。
最后,保证任意两座城市之间总是存在路径。
输入格式
第一行包含两个整数 $N, M$ ($1 \le N \le 20, 0 \le M \le 500$)。
接下来的 $M$ 行,每行包含三个整数 $u_i, v_i, w_i$ ($1 \le u_i, v_i \le N, 1 \le w_i \le 10^6$),表示这条道路连接城市 $u_i$ 和 $v_i$,长度为 $w_i$。
下一行包含两个整数 $K, L$ ($0 \le L \le K \le 10$)。
最后一行包含 $K$ 个整数,表示拥有未点燃篝火的城市编号。
输出格式
输出一行一个整数,表示在紧急情况下你需要行进的最长距离。
样例
输入格式 1
3 3 1 2 1024 1 3 1024 2 3 1024 3 3 1 3 2
输出格式 1
0
输入格式 2
3 2 1 2 5 1 3 1024 3 2 1 3 2
输出格式 2
5