import sys
import heapq
n,m = map(int,input().split())
graph = [[] for _ in range(5001)]
for _ in range(m):
u,v = map(int,input().split())
graph[u].append(v)
graph[v].append(u)
# 第二种方法
# 每次只辐射一个点,将待辐射点加入栈
visited = set()
curr = [(0,1)]
heapq.heapify(curr)
while curr:
dist,node = heapq.heappop(curr)
if node == n:
print(dist)
sys.exit()
for neighbor in graph[node]:
if neighbor not in visited:
visited.add(neighbor)
heapq.heappush(curr,(dist+1,neighbor))
print(-1)


京公网安备 11010502036488号