给定一个含有 $n$ 个顶点和 $m$ 条带权无向边的连通图,其中有 $k$ 个顶点被标记为特殊顶点。如果一棵生成树中所有的特殊顶点都是树中的叶子节点,则称这棵生成树是好的(good)。
你需要求出所有好的生成树中,边权之和的最小值。
需要注意的是,生成树是原图的一个包含 $n$ 个顶点和 $(n-1)$ 条边的连通子图。此外,树中的叶子节点是指度数恰好为 $1$ 的顶点(即仅与一条边相连的顶点)。
输入格式
每个输入文件包含多组测试数据。输入的第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试数据的组数。对于每组测试数据:
第一行包含三个整数 $n$、$m$ 和 $k$ ($2 \le n \le 2 \times 10^5$,$n - 1 \le m \le 2 \times 10^5$,$1 \le k \le n$),分别表示图中的顶点数、边数和特殊顶点数。
第二行包含 $k$ 个互不相同的整数 $a_1, a_2, \dots, a_k$ ($1 \le a_i \le n$),表示特殊顶点。
接下来的 $m$ 行中,第 $i$ 行包含三个整数 $u_i$、$v_i$ 和 $w_i$ ($1 \le u_i, v_i \le n$,$1 \le w_i \le 10^9$),表示有一条连接顶点 $u_i$ 和 $v_i$ 且权值为 $w_i$ 的边。保证给定的图是连通的,但可能存在自环或重边。
保证所有测试数据的 $n$ 之和与 $m$ 之和均不超过 $2 \times 10^5$。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示好的生成树的最小边权之和。如果不存在好的生成树,则输出 -1。
样例
输入样例 1
3 5 6 2 1 5 1 2 3 2 5 7 4 2 6 5 4 9 3 4 10 1 3 5 4 4 4 1 2 3 4 1 2 1 2 3 1 3 4 1 4 1 1 3 4 1 1 1 2 10 1 2 100 2 3 1000 3 3 100000
输出样例 1
26 -1 1010
说明
第一组样例测试数据的示意图如下,其中实线表示生成树中的边,虚线表示不在生成树中的边。