E. Ссора
ограничение по времени на тест
1 second
ограничение по памяти на тест
256 megabytes
ввод
стандартный ввод
вывод
стандартный вывод

Друзья Вася и Петя живут в Бертауне. В этом городе n перекрестков, некоторые из которых соединены одинаковыми по длине двунаправленными улицами. Вася живет в доме на перекрестке номер 1, а Петя — в доме на перекрестке номер n.

Однажды Вася и Петя поссорились так сильно, что отказывались даже видеть друг друга. Так уж вышло, что сегодня Васе нужно дойти от своего дома до перекрестка n, а Пете — от своего дома до перекрестка 1. При этом они не хотят встречаться ни на одном перекрестке, но вполне допустимо, если они встретятся в середине улицы, проходя ее в противоположных направлениях. Вася и Петя попросили вас, как их общего друга, помочь им справиться с этой непростой задачей.

Найдите для Васи и Пети такие маршруты с одинаковым числом улиц, чтобы ребята, следуя маршрутам, никогда не оказывались одновременно на одном перекрестке. Встречаться в середине улицы, двигаясь навстречу друг другу, они могут (см. пример 1). Среди всех возможных маршрутов выберите такой, что количество улиц в нем как можно меньше. Пока оба одновременно не дошли до своих целей, ребята не могут стоять на месте.

Вася и Петя двигаются одновременно и с одинаковой скоростью, то есть допустима ситуация, когда один из них приходит к некоторому перекрестку, а другой уходит из него же. Например, Вася может пойти от перекрестка 1 к перекрестку 2, а Петя может в то же время пойти от перекрестка 2 к перекрестку 3.

Если маршрутов, удовлетворяющих всем требованиям, не существует, ваша программа должны выводить -1.

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

В первой строке записаны два целых числа n и m (2 ≤ n ≤ 500, 1 ≤ m ≤ 10000) — число перекрестков и улиц соответственно. Далее следует m строк по два целых числа в каждой — описания улиц. Улица описывается парой перекрестков, которые она соединяет. Гарантируется, что никакая улица не соединяет перекресток с самим собой, и между любой парой перекрестков есть не более одной улицы.

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

Если искомых маршрутов не существует, выведите -1. Иначе в первой строке должно быть записано одно натуральное число k — длина кратчайшего маршрута (число улиц в нем). Следующая строка должна содержать k + 1 чисел — маршрут Васи, т. е. номера k + 1 перекрестков в порядке их прохождения Васей. Следующая строка должна содержать k + 1 чисел — маршрут Пети в том же формате. Если решений несколько, выведите любое.

Примеры
Входные данные
2 1
1 2
Выходные данные
1
1 2
2 1
Входные данные
7 5
1 2
2 7
7 6
2 3
3 4
Выходные данные
-1
Входные данные
7 6
1 2
2 7
7 6
2 3
3 4
1 5
Выходные данные
6
1 2 3 4 3 2 7
7 6 7 2 1 5 1