Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Эвакуация

Time limit:1 sec.
Memory limit: 262144 KByte

База одной сверхсекретной организации, чьё название мы не имеем право разглашать, представляет собой сеть из N подземных бункеров, пронумерованных от 1 до N. Некоторые пары бункеров соединены равными по длине туннелями. Также в некоторых бункерах имеются специальные засекреченные выходы, через которые осуществляется связь с внешним миром.

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

Входные данные

В первой строке записано число N, во второй – число K (1 ≤ N ≤ 100000, 1 ≤ K ≤ N) – количество бункеров и количество выходов соответственно. Далее через пробел записаны K различных чисел от 1 до N, обозначающих номера бункеров, в которых расположены выходы. Потом идёт целое число M (1 ≤ M ≤ 100000) – количество туннелей. Далее вводятся M пар чисел – номера бункеров, соединённых туннелем. По каждому из туннелей можно двигаться в обе стороны. В организации не существует туннелей, ведущих из бункера в самого себя, зато может существовать более одного туннеля между парой бункеров.

Выходные данные

Выведите N чисел, разделённых пробелом – для каждого из бункеров минимальное время, необходимое, чтобы добраться до выхода. Считайте, что время перемещения по одному любому туннелю равно 1. Если из каких-то бункеров вообще нельзя добраться до выхода (а в сверхсекретных организациях бывает и не такое), то выведите для таких бункеров -1.

Примеры

Входные данные
3
1
2
3
1 2
3 1
2 3
Выходные данные
1 0 1 
Входные данные
5
2
1 2
3
2 3
1 3
4 5
Выходные данные
0 0 1 -1 -1 
© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.