#!/usr/bin/env python3

n, m = map(int, input().split())
g = [[] for _ in range(n)]
es = []

for i in range(0, 2 * m, 2):
    a, b = map(int, input().split())
    es.append((a - 1, b - 1))
    es.append((b - 1, a - 1))
    g[es[i][0]].append(i)
    g[es[i][1]].append(i + 1)

prev = [-1] * (2 * m)
done = [-1] * n
todo = g[0][:]

for ei in todo:
    from_node, to_node = es[ei]
    if to_node == 0:
        solution = []
        j = ei
        while True:
            solution.append(j)
            if es[j][0] == 0:
                break
            j = prev[j]
        print(len(solution) + 1)
        print("1", " ".join(str(es[s][1] + 1) for s in reversed(solution)))
        exit()

    if done[to_node] == -1:
        for j in g[to_node]:
            if es[j][1] != from_node:
                todo.append(j)
                prev[j] = ei
            else:
                done[to_node] = j
    elif done[to_node] >= 0:
        todo.append(done[to_node])
        prev[done[to_node]] = ei
        done[to_node] = -2

print("impossible")
