Problem description
Bajtocja to piękne państwo składające się z N miast, połączonych siecią M dwukierunkowych dróg o jednostkowej długości. Jest to jednocześnie kraj dość dziwny, ponieważ nie w każdym mieście znajduje się choćby jeden dom. Tak naprawdę, domów jest w sumie dość mało, a są od siebie bardzo oddalone.
Napisz program, który: wczyta opis dróg w Bajtocji i numery miast, w których znajdują się domy, wyznaczy dwa najmniej odległe od siebie domy i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna Q, określająca liczbę zestawów danych. W kolejnych wierszach znajdują się kolejne zestawy danych.
W pierwszym wierszu opisu zestawu danych znajdują się dwie liczby naturalne N i M, oddzielone pojedynczym odstępem i określające kolejno: liczbę miast i liczbę dróg między nimi. W kolejnych M wierszach znajdują się opisy dróg. Opis każdej drogi składa się z dwóch liczb naturalnych u i v, oddzielonych pojedynczym odstępem. Są to numery miast połączonych drogą. W kolejnym wierszu znajduje się jedna liczba naturalna D, określająca liczbę domów. W ostatnim wierszu wejścia znajduje się ciąg D liczb naturalnych Ai, pooddzielanych pojedynczymi odstępami. Są to numery miast, w których znajdują się domy.
Miasta numerowane są kolejnymi liczbami naturalnymi od 1 do N.
Wyjście
Twój program powinien wypisać na wyjście dla kolejnych zestawów
danych dokładnie jedną liczbę całkowitą – minimalną odległość dwóch
różnych domów. Jeśli takowa nie istnieje, odpowiedzią jest jedno słowo
NIE
.
Ograniczenia
1 ≤ Q ≤ 10, 1 ≤ D ≤ N ≤ 200 000, 1 ≤ M ≤ 200 000.
Przykład
Input | Output | |
|
|