Повідомлення
У мережі МіКро є \(n\) комп'ютерів та \(m\) з'єднань. Ваше завдання - визначити, чи може Петрик надіслати повідомлення Марії, і якщо це можливо, то скільки мінімально комп'ютерів буде на такому маршруті.
Input Specification
Перша строка вхідних даних містить два цілі числа \(n\) \((2\leq n \leq 10^5)\) та \(m\) \((1\leq n \leq 2 * 10^5)\): кількість комп'ютерів та з'єднань. Комп'ютери пронумеровані від \(1\) до \(n\). Комп'ютер Петрика має номер \(1\), а комп'ютер Марії - номер \(n\).
Далі йдуть \(m\) строк, що описують з'єднання. Кожна строка містить два цілі числа \(a\) та \(b\) \((1\leq a, b \leq n)\): між цими комп'ютерами є з'єднання.
Кожне з'єднання існує між двома різними комп'ютерами, і між будь-якими двома комп'ютерами може бути максимум одне з'єднання.
Output Specification
Якщо можна надіслати повідомлення, спочатку виведіть \(k\): мінімальну кількість комп'ютерів на валідному маршруті. Після цього виведіть приклад такого маршруту. Ви можете вивести будь-яке правильне рішення. Якщо маршрути відсутні, виведіть \(-1\).
Sample Input 1
5 5
1 2
1 3
1 4
2 3
5 4
Sample Output 1
3
1 4 5
Comments