F. Построение дерева
ограничение по времени на тест
2.5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Эксбера есть неориентированный граф с $$$n$$$ вершинами и $$$m$$$ рёбрами. $$$i$$$-е ребро соединяет вершины $$$u_i$$$ и $$$v_i$$$ и имеет вес $$$w_i$$$.

Для любого пути пусть веса рёбер на нём образуют множество $$$S$$$; тогда длина этого пути определяется как $$$\operatorname{mex}(S)$$$. Здесь $$$\operatorname{mex}(S)$$$ обозначает наименьшее исключенное (MEX)$$$^{\text{∗}}$$$ набора чисел $$$S$$$. Пусть $$$\mathrm{dis}(u,v)$$$ обозначает минимальную длину пути среди всех путей, начинающихся в $$$u$$$ и заканчивающихся в $$$v$$$.

Теперь Эксбер хочет построить новый граф с $$$q$$$ вершинами. В новом графе цвет $$$i$$$-й вершины равен $$$c_i$$$. Изначально в этом графе нет рёбер. Если Эксбер добавляет ребро, соединяющее вершины $$$u$$$ и $$$v$$$, то это занимает $$$\mathrm{dis}(c_u,c_v)$$$ единиц времени. Если вершина $$$c_u$$$ и вершина $$$c_v$$$ не связаны в данном графике, Эксбер не может добавить край, соединяющий вершину $$$u$$$ и вершину $$$v$$$ в новом графике.

Определите минимальное количество времени, которое нужно потратить Эксберу, чтобы сделать новый граф связным.

$$$^{\text{∗}}$$$Наименьшее исключенное (MEX) набора чисел $$$S_1, S_2, \ldots, S_k$$$ определяется как наименьшее неотрицательное целое число $$$x$$$, которое не встречается в наборе чисел $$$S$$$.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$m$$$ и $$$q$$$ ($$$1\le n,m\le 3\cdot 10^5$$$, $$$1\le q\le n$$$) — количество вершин в графе, количество рёбер в графе и количество вершин в новом графе соответственно.

В следующих $$$m$$$ строках содержится по три целых числа $$$u$$$, $$$v$$$ и $$$w$$$ ($$$1\le u,v\le n$$$, $$$0\le w\le m$$$), означающих, что между вершинами $$$u$$$ и $$$v$$$ есть ребро веса $$$w$$$.

Следующая строка содержит $$$q$$$ целых чисел $$$c_i$$$ ($$$1\le c_i\le n$$$), означающих, что цвет вершины $$$i$$$ в новом графе равен $$$c_i$$$.

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$3\cdot 10^5$$$.

Гарантируется, что сумма значений $$$m$$$ по всем наборам входных данных не превосходит $$$3\cdot 10^5$$$.

Гарантируется, что сумма значений $$$q$$$ по всем наборам входных данных не превосходит $$$3\cdot 10^5$$$.

Выходные данные

Для каждого набора входных данных выведите одно целое число — минимальное количество времени, которое нужно потратить Эксберу, чтобы сделать новый граф связным. Если это невозможно, выведите $$$-1$$$.

Пример
Входные данные
4
5 6 3
1 2 0
2 3 1
3 4 2
3 5 1
5 1 0
4 5 1
1 2 4
10 12 5
7 2 3
5 8 0
8 9 2
1 8 1
3 5 0
10 6 0
7 4 3
1 10 0
3 1 0
1 7 2
2 9 0
6 8 0
3 5 9 10 6
10 12 5
8 2 0
10 1 1
6 10 0
4 2 3
4 3 2
3 8 3
10 7 0
4 5 1
6 4 0
2 10 0
1 3 0
7 9 0
6 1 7 9 5
5 4 2
5 1 0
5 2 0
1 2 1
3 4 2
1 3
Выходные данные
1
4
5
-1
Примечание

В первом наборе входных данных исходный граф содержит $$$5$$$ вершин и $$$5$$$ рёбер. Цвета вершин нового графа равны $$$1$$$, $$$2$$$ и $$$4$$$.

Исходный граф первого набора входных данных. Числа в скобках обозначают индексы вершин нового графа, цвет которых равен индексу данной вершины исходного графа.

В новом графе Эксбер добавит рёбра $$$(1,2)$$$ и $$$(2,3)$$$, причём первое ребро будет стоить $$$1$$$ единицу времени, а второе — $$$0$$$ единиц времени; следовательно, суммарное время равно $$$1$$$.

Во втором наборе входных данных исходный граф содержит $$$10$$$ вершин и $$$12$$$ рёбер. Цвета вершин нового графа равны $$$3$$$, $$$5$$$, $$$9$$$, $$$10$$$ и $$$6$$$.

Исходный граф второго набора входных данных. Числа в скобках обозначают индексы вершин нового графа, цвет которых равен индексу данной вершины исходного графа.

В новом графе Эксбер добавит рёбра $$$(1,2)$$$, $$$(2,3)$$$, $$$(3,4)$$$ и $$$(4,5)$$$, и каждое ребро будет стоить $$$1$$$ единицу времени; следовательно, суммарное время равно $$$4$$$.