#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k; // Количество вершин
vector<int> winner(m);
for (int i = 0; i < m; i++) // Нужные нам вершины
{
cin >> winner[i];
winner[i]--; // Сдвиг индекса, так как у нас отсчёт в задаче начинается с 1, а в коде с нуля
}
vector<vector<int>> path(n, vector<int>(n, 1e6)); // Матрица смежности (1е6 значит, что ребра нет)
for (int i = 0; i < k; i++)
{
int a, b, t;
cin >> a >> b >> t;
a--; //Свдиг индекса
b--;
if (path[a][b] > t)
{
path[a][b] = t;
path[b][a] = t;
}
}
int start; // Вершина, в которой мы находимся
cin >> start;
start--; // Сдвиг индекса
vector<int> count(n, 1e6); // Счётчик пути до вершин
vector<bool> used(n, false); // Посещена ли вершина
count[start] = 0;
while (start != -1) // Алгоритм Дейкстры
{
int next = -1, mini = 1e6;
for (int j = 0; j < n; j++)
{
if (count[j] > count[start] + path[start][j]) // Обновляем расстояние до смежных вершин
{
count[j] = count[start] + path[start][j];
}
if (count[j] < mini && !used[j]) // Ищем непосещённую вершину с минимальным расстоянием
{
next = j;
mini = count[j];
}
}
used[start] = true; // Отмечаем, что данную вершину мы посетили
start = next; // Переходим в следующую вершину
}
bool deliver = true; // Предположим, что посетили все вершины
int longest = 0; // Ставим значение, равное минимальному возможному расстоянию
for (int i = 0; i < m && deliver; i++)
{
if (!used[winner[i]]) // Проверяем всем ли победителям доставили призы
{
deliver = false;
}
longest = max(count[winner[i]], longest); // Ищем максимальную дистанцию
}
if (deliver) // Если доставили призы всем
{
cout << "The good sponsor!\n" << longest;
}
else // Иначе
{
cout << "It is not fault of sponsor...";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgbiwgbSwgazsKCWNpbiA+PiBuID4+IG0gPj4gazsgLy8g0JrQvtC70LjRh9C10YHRgtCy0L4g0LLQtdGA0YjQuNC9Cgl2ZWN0b3I8aW50PiB3aW5uZXIobSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgLy8g0J3Rg9C20L3Ri9C1INC90LDQvCDQstC10YDRiNC40L3RiwoJewoJCWNpbiA+PiB3aW5uZXJbaV07CgkJd2lubmVyW2ldLS07IC8vINCh0LTQstC40LMg0LjQvdC00LXQutGB0LAsINGC0LDQuiDQutCw0Log0YMg0L3QsNGBINC+0YLRgdGH0ZHRgiDQsiDQt9Cw0LTQsNGH0LUg0L3QsNGH0LjQvdCw0LXRgtGB0Y8g0YEgMSwg0LAg0LIg0LrQvtC00LUg0YEg0L3Rg9C70Y8KCX0KCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gcGF0aChuLCB2ZWN0b3I8aW50PihuLCAxZTYpKTsgLy8g0JzQsNGC0YDQuNGG0LAg0YHQvNC10LbQvdC+0YHRgtC4ICgx0LU2INC30L3QsNGH0LjRgiwg0YfRgtC+INGA0LXQsdGA0LAg0L3QtdGCKQoJZm9yIChpbnQgaSA9IDA7IGkgPCBrOyBpKyspCgl7CgkJaW50IGEsIGIsIHQ7CgkJY2luID4+IGEgPj4gYiA+PiB0OwoJCWEtLTsgLy/QodCy0LTQuNCzINC40L3QtNC10LrRgdCwCgkJYi0tOwoJCWlmIChwYXRoW2FdW2JdID4gdCkKCQl7CgkJCXBhdGhbYV1bYl0gPSB0OwoJCQlwYXRoW2JdW2FdID0gdDsKCQl9Cgl9CglpbnQgc3RhcnQ7IC8vINCS0LXRgNGI0LjQvdCwLCDQsiDQutC+0YLQvtGA0L7QuSDQvNGLINC90LDRhdC+0LTQuNC80YHRjwoJY2luID4+IHN0YXJ0OwoJc3RhcnQtLTsgLy8g0KHQtNCy0LjQsyDQuNC90LTQtdC60YHQsAoJdmVjdG9yPGludD4gY291bnQobiwgMWU2KTsgLy8g0KHRh9GR0YLRh9C40Log0L/Rg9GC0Lgg0LTQviDQstC10YDRiNC40L0KCXZlY3Rvcjxib29sPiB1c2VkKG4sIGZhbHNlKTsgLy8g0J/QvtGB0LXRidC10L3QsCDQu9C4INCy0LXRgNGI0LjQvdCwCgljb3VudFtzdGFydF0gPSAwOwoJd2hpbGUgKHN0YXJ0ICE9IC0xKSAvLyDQkNC70LPQvtGA0LjRgtC8INCU0LXQudC60YHRgtGA0YsKCXsKCQlpbnQgbmV4dCA9IC0xLCBtaW5pID0gMWU2OwoJCWZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKQoJCXsKCQkJaWYgKGNvdW50W2pdID4gY291bnRbc3RhcnRdICsgcGF0aFtzdGFydF1bal0pIC8vINCe0LHQvdC+0LLQu9GP0LXQvCDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQtNC+INGB0LzQtdC20L3Ri9GFINCy0LXRgNGI0LjQvQoJCQl7CgkJCQljb3VudFtqXSA9IGNvdW50W3N0YXJ0XSArIHBhdGhbc3RhcnRdW2pdOwoJCQl9CgkJCWlmIChjb3VudFtqXSA8IG1pbmkgJiYgIXVzZWRbal0pIC8vINCY0YnQtdC8INC90LXQv9C+0YHQtdGJ0ZHQvdC90YPRjiDQstC10YDRiNC40L3RgyDRgSDQvNC40L3QuNC80LDQu9GM0L3Ri9C8INGA0LDRgdGB0YLQvtGP0L3QuNC10LwKCQkJewoJCQkJbmV4dCA9IGo7CgkJCQltaW5pID0gY291bnRbal07CgkJCX0KCQl9CgkJdXNlZFtzdGFydF0gPSB0cnVlOyAvLyDQntGC0LzQtdGH0LDQtdC8LCDRh9GC0L4g0LTQsNC90L3Rg9GOINCy0LXRgNGI0LjQvdGDINC80Ysg0L/QvtGB0LXRgtC40LvQuAoJCXN0YXJ0ID0gbmV4dDsgLy8g0J/QtdGA0LXRhdC+0LTQuNC8INCyINGB0LvQtdC00YPRjtGJ0YPRjiDQstC10YDRiNC40L3RgwoJfQoJYm9vbCBkZWxpdmVyID0gdHJ1ZTsgLy8g0J/RgNC10LTQv9C+0LvQvtC20LjQvCwg0YfRgtC+INC/0L7RgdC10YLQuNC70Lgg0LLRgdC1INCy0LXRgNGI0LjQvdGLCglpbnQgbG9uZ2VzdCA9IDA7IC8vINCh0YLQsNCy0LjQvCDQt9C90LDRh9C10L3QuNC1LCDRgNCw0LLQvdC+0LUg0LzQuNC90LjQvNCw0LvRjNC90L7QvNGDINCy0L7Qt9C80L7QttC90L7QvNGDINGA0LDRgdGB0YLQvtGP0L3QuNGOCglmb3IgKGludCBpID0gMDsgaSA8IG0gJiYgZGVsaXZlcjsgaSsrKQoJewoJCWlmICghdXNlZFt3aW5uZXJbaV1dKSAvLyDQn9GA0L7QstC10YDRj9C10Lwg0LLRgdC10Lwg0LvQuCDQv9C+0LHQtdC00LjRgtC10LvRj9C8INC00L7RgdGC0LDQstC40LvQuCDQv9GA0LjQt9GLCgkJewoJCQlkZWxpdmVyID0gZmFsc2U7CgkJfQoJCWxvbmdlc3QgPSBtYXgoY291bnRbd2lubmVyW2ldXSwgbG9uZ2VzdCk7IC8vINCY0YnQtdC8INC80LDQutGB0LjQvNCw0LvRjNC90YPRjiDQtNC40YHRgtCw0L3RhtC40Y4KCX0KCWlmIChkZWxpdmVyKSAvLyDQldGB0LvQuCDQtNC+0YHRgtCw0LLQuNC70Lgg0L/RgNC40LfRiyDQstGB0LXQvAoJewoJCWNvdXQgPDwgIlRoZSBnb29kIHNwb25zb3IhXG4iIDw8IGxvbmdlc3Q7Cgl9CgllbHNlIC8vINCY0L3QsNGH0LUKCXsKCQljb3V0IDw8ICJJdCBpcyBub3QgZmF1bHQgb2Ygc3BvbnNvci4uLiI7Cgl9CgoJcmV0dXJuIDA7Cn0=