import sys from collections import deque def main(): input = sys.stdin.read().split() idx = 0 N = int(input[idx]); idx +=1 Q = int(input[idx]); idx +=1 adj = [[] for _ in range(N+1)] # 1-based for step in range(1, Q+1): A = int(input[idx]); idx +=1 B = int(input[idx]); idx +=1 # Check if B can reach A visited = [False] * (N +1) dq = deque() dq.append(B) visited[B] = True found = False while dq: u = dq.popleft() if u == A: found = True break for v in adj[u]: if not visited[v]: visited[v] = True dq.append(v) if found: print(step) return # Add the edge adj[A].append(B) print(-1) if __name__ == "__main__": main()