#!/usr/bin/env python3
from collections import deque


n, m = map(int, input().split())

N: list[list[int]] = [[] for _ in range(n)]

for _ in range(m):
    u, v = map(lambda x: int(x) - 1, input().split())
    N[u].append(v)
    N[v].append(u)

Q = [0]
pred: dict[int, int|None] = { 0: None }
for u in Q:
    for v in N[u]:
        if v not in pred:
            pred[v] = u
            Q.append(v)
        else:
        # elif v != pred[u]:
            pu, pv = [u], [v]
            for path in [pu,  pv]:
                while path[-1] != 0:
                    path.append(pred[path[-1]])
            print(len(pu) + len(pv))
            print(*(w + 1 for w in pu[::-1] + pv))
            exit()
else:
    print("impossible")
