✅ 정답 공개
from collections import deque
n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
u, v = map(int, input().split())
graph[u].append(v)
min_cycle = float('inf')
for start in range(1, n+1):
dist = [-1]*(n+1)
dist[start] = 0
q = deque([start])
while q:
node = q.popleft()
for nxt in graph[node]:
if dist[nxt] == -1:
dist[nxt] = dist[node]+1
q.append(nxt)
elif nxt == start:
min_cycle = min(min_cycle, dist[node]+1)
print(min_cycle if min_cycle != float('inf') else -1)