eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Розвернути граф

Розвернути граф

Ліміт часу 6 секунд
Ліміт використання пам'яті 256 MiB

Задано орієнтований граф з n вершин і m ребер. Вершини графа пронумеровані від 1 до n. Знайдіть найменшу кількість ребер, які варто розвернути, щоб існував хоча б один шлях від вершини 1 до вершини n.

Вхідні дані

Перший рядок містить два цілих числа n і m\:(1 \le n, m \le 2 \cdot 10^6) — кількість вершин і ребер. i-ий рядок з наступних m рядків містить два цілих числа x_i і y_i\:(1 \le x_i, y_i \le n), що означає, що i-е орієнтоване ребро йде від вершини x_i до вершини y_i

Вихідні дані

Виведіть найменшу кількість ребер, яку слід розвернути. Якщо неможливо отримати жодного шляху від 1 до n, виведіть -1.

Приклад

Вхідні дані #1
7 7
1 2
3 2
3 4
7 4
6 2
5 6
7 5
Вихідні дані #1
2