E. Открытие порталов
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Павел играет в одну известную компьютерную игру. Игроку предоставлена в распоряжение целая страна, где можно свободно путешествовать, выполнять квесты и набирать опыт.

В этой стране n городов, соединенных m двусторонними дорогами различной длины так, что из каждого города можно добраться до каждого. В k из этих городов имеются порталы. В начале игры все порталы закрыты. Когда игрок посещает город, в котором есть портал, этот портал становится открытым. Из открытого портала в открытый можно, как ни странно, телепортироваться. Телепортация происходит мгновенно, что дает возможность игроку быстро перемещаться между довольно удаленными областями страны.

В начале игры Павел находится в городе с номером 1. Он хочет как можно быстрее открыть все порталы. Какое наименьшее время ему для этого потребуется?

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

В первой строке через пробел записано два целых числа n и m (1 ≤ n ≤ 105, 0 ≤ m ≤ 105) — количества городов и дорог в игре.

В каждой из следующих m строк содержится описание дороги — три целых числа xi, yi, wi, записанные через пробел (1 ≤ xi, yi ≤ n, xi ≠ yi, 1 ≤ wi ≤ 109) — номера городов, соединенных i-ой дорогой и время, необходимое на ее преодоление. Между любыми двумя городами проведено не более одной дороги. Гарантируется, что из любого города можно добраться до любого, двигаясь по дорогам страны.

В следующей строке записано целое число k (1 ≤ k ≤ n) — количество порталов.

В следующей строке через пробел записаны k целых чисел p1, p2, ..., pk — номера городов, в которых установлены порталы. В каждом городе установлено не более одного портала.

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

Выведите единственное число — минимальное время, которое требуется игроку, чтобы открыть все порталы.

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-битных чисел на C++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

Примеры
Входные данные
3 3
1 2 1
1 3 1
2 3 1
3
1 2 3
Выходные данные
2
Входные данные
4 3
1 2 1
2 3 5
2 4 10
3
2 3 4
Выходные данные
16
Входные данные
4 3
1 2 1000000000
2 3 1000000000
3 4 1000000000
4
1 2 3 4
Выходные данные
3000000000
Примечание

Во втором примере игрок должен прийти в город 2, открыть в нем портал, затем отправиться в город 3, открыть там портал, телепортироваться обратно в город 2 и, наконец, завершить свое путешествие в городе 4.