J. Ночной патруль
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мирлин Теренс тщетно пытался спасти Рика и Валлону от агентов Трантора. Переодевшись патрульным, он разыскивал их по всему Верхнему городу, однако никак не мог напасть на их след. Встреча произошла уже недалеко и космопорта, но тут завязалась перестрелка между Теренсом и агентом, а Рик и Валлона, не узнав Мирлина, сбежали, и уже летели на космическом корабле до Сарка. Теренс понимал, что не может лететь вслед за ними на корабле — его тут же узнают. Однако у многих зажиточных граждан Верхнего города были космические яхты, путешествие на которой вызвало бы намного меньше подозрений. Конечно, Теренс к этим гражданам не относился и ключей от яхты не имел, но форма патрульного, оружие и полумрак ночных улиц помогли их раздобыть.

Теренс все еще должен был оставаться незамеченным, и потому ему стоило избегать встречи с патрульными. Квартал рядом с портом состоит из $$$n$$$ перекрестков, соединенных $$$m$$$ дорожками с односторонним движением, для каждой дорожки известно, за какое время ее можно преодолеть. Посреди ночи по кварталу ходили всего двое патрульных, которые сейчас находятся на перекрестках $$$s_1$$$ и $$$s_2$$$. По рации, отобранной у патрульного, Теренс узнал, что они должны обойти $$$k$$$ перекрестков $$$p_1, p_2, ... p_k$$$ в заданном порядке (один перекресток может встречаться в этом списке несколько раз). Обходить они будут по одному, то есть на каждом из заданных перекрестков может побывать один из патрульных. Они действуют следующим образом: сначала какой-либо из патрульных доходит до перекрестка $$$p_1$$$ и сообщает об этом напарнику. После этого какой-либо патрульный начинает свое движение до перекрестка $$$p_2$$$. Так происходит, пока патрульные не осмотрят перекресток $$$p_k$$$, после чего их смена заканчивается. Если в какой-то момент патрульным необходимо проверить перекресток $$$i$$$, и какой-то из патрульных как раз находится на этом перекрестке, они переходят к проверке следующего перекрестка. При необходимости патрульные могут находиться на одном перекрестке. Патрульные хотят как можно быстрее закончить свою работу, а потому выбирают пути и разделяют между собой перекрестки таким образом, чтобы обход занял минимальное время.

Мирлин Теренс решил, что проще всего проникнуть в порт во время смены патрульных. Поэтому он спрашивает вас: сколько времени патрульные будут совершать обход, если они выбирают свои пути оптимально?

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

В первой строке записаны три числа: $$$n, m$$$ и $$$k$$$ $$$(1 \leq n \leq 300, 0 \leq m \leq n \cdot (n - 1), 1 \leq k \leq 1000)$$$ — количество перекрестков, дорожек и количество перекрестков, которые должны осмотреть патрульные, соответственно.

В следующих $$$m$$$ строках через пробел записаны по три числа: $$$v_i, u_i$$$ и $$$t_i$$$ $$$(1 \leq v_i, u_i \leq n, 1 \leq t_i \leq 10^6)$$$, означающие, что от перекрестка с номером $$$v_i$$$ идет дорожка к перекрестку с номером $$$u_i$$$, по которой можно пройти за время $$$t_i$$$.

В следующей строке через пробел записаны номера перекрестков $$$p_1, p_2, \dots p_k$$$.

В последней строке через пробел записаны два числа — $$$s_1$$$ и $$$s_2$$$.

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

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

Примеры
Входные данные
5 0 5
5 5 4 4 5
5 4
Выходные данные
0
Входные данные
5 4 4
1 5 3
5 1 10
1 2 1
2 3 2
5 1 2 3
1 2
Выходные данные
15
Примечание

В первом примере между перекрестками нет ни одной дорожки, но патрульные находятся на $$$5$$$-м и $$$4$$$-м перекрестках. Так как патрульным требуется проверить $$$5, 5, 4, 4$$$ и $$$5$$$ перекрестки, им остается лишь стоять на месте каждый раз. Таким образом, на перемещение время тратиться не будет.

Во втором примере оптимален следующий алгоритм. Первый патрульный перемещается с $$$1$$$-го перекрестка на $$$5$$$-й за $$$3$$$ единицы времени, а затем возвращается на $$$1$$$ перекресток за $$$10$$$ единиц времени. После этого второй патрульный, находясь на $$$2$$$-м перекрестке проверяет его и переходит на $$$3$$$-й перекресток за $$$2$$$ единицы времени. Таким образом, получаем суммарное время: $$$3 + 10 + 2 = 15$$$.