EduBrick

H. Найти сам цикл

3000 мс · 256 МБ · всё или ничего

Простой неориентированный граф задан списком рёбер — петель и кратных рёбер нет. Найдите в нём цикл и выведите его.

Чтобы ответ был единственным, цикл ищется так. Обход запускается из вершин по возрастанию номера, соседи перебираются по возрастанию. Как только из текущей вершины виден уже посещённый сосед uu, не являющийся родителем, — найден цикл: путь в дереве обхода от uu до текущей вершины плюс ребро назад.

Выводится он начиная с uu и далее по пути вниз до текущей вершины.

Формат ввода

Первая строка содержит числа nn (1≤n≤1051 \le n \le 10^5) и mm (0≤m≤2⋅1050 \le m \le 2 \cdot 10^5).

Далее идут mm строк с рёбрами простого графа.

Формат вывода

Если цикла нет, выведите −1-1.

Иначе в первой строке — длина цикла, во второй — его вершины.

Примеры

ввод
4 4
1 2
2 3
3 4
4 1
вывод
4
1 2 3 4
ввод
3 2
1 2
2 3
вывод
-1
Войдите, чтобы отправлять решения.