Задачі
Задача Комівояжера
Задача Комівояжера
Старий мудрий Комівояжер прожив досить довге життя, знаходячись у постійних подорожах. Він лише тим і займався, щто їздив по містам та продавав товари. У комівояжерських колах його знали, як головного спеціалиста по знаходженню самих вигідних маршрутів. Ще б пак, адже у свій час йо довелось вивчити метод гілок та границь для того, щоб обирати найменш затратні маршрути.
І вот Комівояжер вирішив відправитись в останню перед пенсією ділову поїздку. Із-за проблем зі здоров'єм йому прийшлось відмовитись від ідеї побувати у всіх \textbf{N} поблизу розміщених містах. Він подумав, що непогано було б відвідати старих товаришів, які проживають у деяки \textbf{M} містах. Інші міста не представляють інтересу, і заїхати до них можно лише тоді, якщо вони розміщені на шляху подорожі. Звичайно, Комівояжера цікавить самий вигідний маршрут.
Допоможіть старому організувати останню поїздку.
\InputFile
У першому рядку вхідного файла два цілих числа \textbf{K} (\textbf{1} ≤ \textbf{K} ≤ \textbf{100}) і \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{20}). Наступні \textbf{K} рядків містять описи доріг. У кожному рядку 3 числа -- номер пункту відправлення, номер пункту призначення та вартість поїздки. Вартість переміщення по заданій дорозі однакова у обох напрямках. Між двома пунктами може бути більше однієї дороги. У наступному рядку число \textbf{M} (\textbf{1} ≤ \textbf{M} ≤ \textbf{10}) -- кількість міст, які потрібно обов'язково відвідати хоча б один раз. У останньому рядку перераховані номери цих міст. Причому перше місто у списку -- це місто, з якого починає свій шлях Комівояжер, а останнє --у якому завершує.
\OutputFile
У вихідний файл потрібно вивести єдине число - вартість самого вигідного шляху.
Вхідні дані #1
3 3 1 2 3 2 3 100 1 3 5 3 1 2 3
Вихідні дані #1
11