from collections import deque, defaultdict n, m = map(int, input().split()) edge = defaultdict(list) for _ in range(m): a, b = map(int, input().split()) a -= 1 b -= 1 edge[a].append(b) edge[b].append(a) ans = -1 visited = set([0]) Que = deque([(0, 0)]) while Que: curr, cnt = Que.popleft() if curr == n - 1: ans = cnt break for np in edge[curr]: if np in visited: continue visited.add(np) Que.append((np, cnt + 1)) print(ans)