import sys sys.setrecursionlimit(100050) N,Q = map(int,input().split()) AB = [list(map(int,input().split())) for _ in range(Q)] def check(n): def dfs(x): nv[x] = 0 for y in E[x]: if st[y] == 1: return True st[y] = 1 if nv[y] and dfs(y): return True st[y] = 0 E = [[] for _ in range(N)] for i in range(n): a,b = AB[i] a -= 1 b -= 1 E[a].append(b) nv = [1] * N for i in range(N): if nv[i]: st = [0] * N st[i] = 1 if dfs(i): return True return False nv = [0] * N lb = 0 ub = Q + 1 while ub - lb > 1: mid = (ub + lb) // 2 if check(mid): ub = mid else: lb = mid if ub == Q + 1: print(-1) else: print(ub)