C. Дома в Берляндии
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Как известно, в столице Берляндии есть n перекрёстков. На некоторых их этих перекрёстков находятся жилые дома. Пусть ai — это количество человек в семье, проживающей в доме, который находится на перекрёстке i для всех 1 ≤ i ≤ n. Если ai равно нулю, будем считать, что на этом i-м перекрёстке нет жилого дома.

Некоторые перекрёстки соединены дорогами. Всего в Берляндии m дорог. По каждой дороге можно ходить в любом направлении. Каждая дорога соединяет два различных перекрёстка. Любые два перекрёстка соединены не более чем одной дорогой. От любого перекрёстка можно добраться по дорогам города до любого другого перекрёстка. Назовём расстоянием между перекрёстками i и j минимальное количество дорог, по которым нужно пройти, чтобы добраться от перекрёстка i до перекрёстка j.

Когда одна семья ходит в гости к другой семье, каждый человек находит себе ровно одного собеседника из другой семьи, и они вдвоем разговаривают между собой. Двум семьям общаться скучно, если какой-то человек останется без собеседника.

По какой-то непонятной причине правительство Берляндии попросило вас найти два ближайших жилых дома v и u, таких что если семья из дома v придёт в гости к семье из дома u, то им будет скучно общаться, то есть av > 0, au > 0, av ≠ au и расстояние от v до u минимально. Гарантируется, что существуют два жилых дома с различным количеством жильцов.

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

В первой строке входных данных заданы числа n и m (2 ≤ n ≤ 1 000 000, 1 ≤ m ≤ 1 000 000) — количество перекрёстков в столице Берляндии и количество двунаправленных дорог соответственно.

Во второй строке входных данных заданы n чисел (0 ≤ ai ≤ 109), где ai равно 0, если на i-м перекрёстке нет жилого дома, или ai равно количеству человек в семье, проживающей в доме, который находится на i-м перекрёстке.

В следующих m строках заданы дороги. В i-й из этих строк заданы два числа vi и ui (1 ≤ vi, ui ≤ n, vi ≠ ui) — номера перекрёстков, соединённых соответствующей дорогой.

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

В единственной строке выведите одно целое число — минимальное расстояние между двумя жилыми домами с различным количеством жильцов.

Примеры
Входные данные
4 4
1 0 2 0
1 2
2 3
3 4
4 1
Выходные данные
2
Входные данные
5 4
1 0 2 1 0
1 5
4 5
5 2
2 3
Выходные данные
3
Примечание

В первом примере населены только два дома — у перекрёстков 1 и 3 и количество жильцов в них разное. Расстояние между домами равно 2, кратчайший путь использует дороги 1 и 2.