N, M = map(int, input().split()) adj = [[] for i in range(N+1)] for i in range(M): u, v = map(int, input().split()) adj[u].append(v) color = [0]*(N+1) # 0-нет цвета, 1 - обработка, 2 - отмечена и мы закончили parent = [0]*(N+1) for i in range(1, N+1): if color[i] == 0: stack = [i] while stack: u = stack.pop() if color[u] == 0: color[u] = 1 stack.append(u) for v in adj[u]: if color[v] == 0: stack.append(v) parent[v] = u elif color[v] == 1 : cycle = [v] curr = u while curr != v: cycle.append(curr) curr = parent[curr] print(len(cycle)) print(*(cycle[::-1])) exit() elif color[u] == 1: color[u] = 2 print("-1")