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)