from collections import deque n, m = map(int, input().split()) g = [[] for _ in range(n)] for _ in range(m): a, b = map(int, input().split()) a -= 1 b -= 1 g[a].append(b) g[b].append(a) src = 0 dst = n - 1 dist = [None for _ in range(n)] dist[src] = 0 dq = deque() dq.appendleft(src) while len(dq) > 0: cur = dq.pop() for nxt in g[cur]: if not dist[nxt] is None: continue dist[nxt] = dist[cur] + 1 dq.appendleft(nxt) if dist[dst] is None: print("-1") else: print(dist[dst])