EduBrick

E. Эвакуация

3000 мс · 256 МБ · всё или ничего

Сеть из NN бункеров соединена туннелями равной длины. В некоторых бункерах есть выходы наружу.

Для каждого бункера найдите время до ближайшего выхода — количество туннелей на кратчайшем пути — и номер этого выхода. Если ближайших выходов несколько, выведите выход с наименьшим номером.

Запускать обход из каждого бункера нельзя. Приём другой: положить в очередь сразу все выходы с расстоянием ноль. Такой обход называют многоисточниковым, и он за один проход даёт расстояние до ближайшего источника для всех вершин.

Чтобы номер выхода получался наименьшим, источники кладутся в очередь по возрастанию номера, а при равном расстоянии выбирается меньший номер выхода.

Формат ввода

Первая строка содержит числа NN (1≤N≤1051 \le N \le 10^5) и KK (1≤K≤N1 \le K \le N).

Вторая строка содержит KK различных номеров бункеров с выходами.

Третья строка содержит число MM (0≤M≤1050 \le M \le 10^5), далее MM строк с туннелями. Возможны кратные туннели; петель нет.

Формат вывода

В первой строке — NN чисел: время до ближайшего выхода.

Во второй — NN чисел: номер ближайшего выхода.

Примеры

ввод
3 1
2
3
1 2
3 1
2 3
вывод
1 0 1
2 2 2
ввод
2 1
2
0
вывод
-1 0
-1 2
Войдите, чтобы отправлять решения.