output_description: If there is no induced subgraph of G that satisfies the condition, print `-1`.
  Otherwise, print an induced subgraph of G that satisfies the condition, in the
  following format:
  
      
      
      K
      v_1
      v_2
      :
      v_K
      
  
  This represents the induced subgraph of G with K vertices whose vertex set is
  \\{v_1, v_2, \ldots, v_K\\}. (The order of v_1, v_2, \ldots, v_K does not
  matter.) If there are multiple subgraphs of G that satisfy the condition,
  printing any of them is accepted.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
      A_1 B_1
      A_2 B_2
      :
      A_M B_M
attempt: import sys
  
  stdin = sys.stdin
  
  ni = lambda: int(ns())
  na = lambda: list(map(int, stdin.readline().split()))
  ns = lambda: stdin.readline().rstrip()  # ignore trailing spaces
  
  n, m = na()
  g = [[False] * n for _ in range(n)]
  gs = [[] for _ in range(n)]
  for i in range(m):
      s, t = na()
      gs[s - 1].append(t - 1)
      g[s - 1][t - 1] = True
  
  ans = 999999
  best = None
  for i in range(n):
      ds = [9999999] * n
      prevs = [-1] * n
      ds[i] = 0
      q = [i]
      qp = 0
      while qp < len(q):
          cur = q[qp]
          qp += 1
          for e in gs[cur]:
              if ds[e] > ds[cur] + 1:
                  ds[e] = ds[cur] + 1
                  prevs[e] = cur
                  q.append(e)
      for j in range(n):
          if g[j][i]:
              if ds[j] + 1 < ans:
                  ans = ds[j] + 1
                  best = [0] * (ds[j] + 1)
                  best[0] = i
                  cur = j
                  r = -1
                  while cur != i:
                      best[r] = cur
                      r -= 1
                      cur = prevs[cur]
  
  if not best:
      print(-1)
  else:
      print(ans)
      for x in best:
          print(x + 1)
  
problem_description: Statement
  
  Given is a directed graph G with N vertices and M edges.  
  The vertices are numbered 1 to N, and the i-th edge is directed from Vertex
  A_i to Vertex B_i.  
  It is guaranteed that the graph contains no self-loops or multiple edges.
  
  Determine whether there exists an induced subgraph (see Notes) of G such that
  the in-degree and out-degree of every vertex are both 1. If the answer is yes,
  show one such subgraph.  
  Here the null graph is not considered as a subgraph.
samples: [{"input": "4 5\n    1 2\n    2 3\n    2 4\n    4 1\n    4 3", "output": "3\n    1\n    2\n    4\n    \n\nThe induced subgraph of G whose vertex set is \\\\{1, 2, 4\\\\} has the edge set\n\\\\{(1, 2), (2, 4), (4, 1)\\\\}. The in-degree and out-degree of every vertex in\nthis graph are both 1.\n\n* * *"}, {"input": "4 5\n    1 2\n    2 3\n    2 4\n    1 4\n    4 3", "output": "-1\n    \n\nThere is no induced subgraph of G that satisfies the condition.\n\n* * *"}, {"input": "6 9\n    1 2\n    2 3\n    3 4\n    4 5\n    5 6\n    5 1\n    5 2\n    6 1\n    6 2", "output": "4\n    2\n    3\n    4\n    5"}]