eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Дорогое метро

Дорогое метро

Питер живет в Дорогом городе, одном из самых дорогих городов мира. У Питера недостаточно денег, чтобы купить машину, а автобусы в Дорогом городе довольно плохие, поэтому он ездит на работу на метро. До сих пор метро было очень дешевым: с одним билетом \textbf{\$2} можно было поехать куда угодно. В прошлом месяце менеджеры решили, что это слишком дешево, и изобрели EFS (систему дорогих тарифов). С помощью этой системы пользователи могут покупать ежемесячные билеты только между соседними станциями, что позволяет им перемещаться между этими станциями любое количество раз. Цена месячного билета варьируется на разных станциях, поэтому решение о том, какие билеты покупать, необходимо принимать тщательно. \includegraphics{https://static.e-olymp.com/content/0b/0b973c665f9706151fe172599151068c547b6bf7.jpg} Согласно предыдущему плану метро, самым дешевым способом добраться из Пикадилли в Викторию и Квинсуэй было купить ежемесячный билет Пикадилли-Виктория и Квинсуэй-Виктория общей стоимостью \textbf{\$12}. Питер — продавец, поэтому ему нужно иметь возможность поехать в любую часть города. Он хочет тратить как можно меньше денег, и вот тут-то вы и вступаете в игру. Он нанял вас для написания программы, которая, учитывая список станций, стоимость ежемесячных билетов между парами станций и станцией, ближайшей к дому Питера, возвращает минимальную сумму денег, которую Питер должен потратить, чтобы поехать на любую другую станцию. станция. Эта программа также должна вернуть значение, если невозможно добраться от домашней станции Питера до всех остальных, потому что в этом случае Питер начнет рассматривать возможность использования автобусов... \InputFile Входные данные состоят из нескольких тестовых примеров. Тестовый пример начинается со строки, содержащей два целых числа: $1 \le s \le 400$ (количество станций) и $0 \le c \le 79800$ (количество соединений), разделенных одним пробелом. Далее следуют строки, каждая из которых содержит название станции метро. Эти имена будут представлять собой строки символов (прописных или строчных букв) без знаков препинания и пробелов, а максимальная длина — $10$ символов. После названий станций будут c строки, показывающие соединения между станциями. Соединение позволяет людям путешествовать с одной станции на другую в обоих направлениях. Каждое соединение представлено в виде двух строк, обозначающих названия станций, и положительного целого числа, обозначающего стоимость месячного билета, разделенных одинарными пробелами. Все названия станций, появляющиеся в соединениях, предварительно появятся в списке станций. Все соединения будут разными, и не будет никакой связи между станцией и самой собой. Тестовый пример закончится строкой, содержащей название станции, от которой Питеру нужно добраться до всех остальных станций. Ввод завершается фантомным тестовым примером $0\ 0$, который не подлежит обработке. \OutputFile Для каждого тестового примера выходными данными будет строка, содержащая целое число — минимальную ежемесячную цену, которую Питер должен заплатить за проезд от данной станции до всех остальных, или \texttt{Impossible}, если невозможно доехать до всех станции.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3 3
Picadilly
Victoria
Queensway
Picadilly Victoria 2
Queensway Victoria 10
Queensway Picadilly 20
Picadilly
4 2
Picadilly
Victoria
Queensway
Temple
Picadilly Victoria 2
Temple Queensway 100
Temple
0 0

Выходные данные #1
12
Impossible