N, M = [ int(x) for x in input().split() ]

train = [ [ False for b in range(N) ] for a in range(N) ]
for m in range(M):
    a, b = [ int(x)-1 for x in input().split() ]
    train[a][b] = train[b][a] = True
if train[0][N-1]: train = [ [ not train[a][b] for b in range(N) ] for a in range(N) ]

dist = [ N+1 for n in range(N) ]
dist[0] = 0
from queue import Queue
Q = Queue()
Q.put(0)
while not Q.empty():
    kde = Q.get()
    for kam in range(N):
        if train[kde][kam]:
            if dist[kam] > dist[kde]+1:
                dist[kam] = dist[kde]+1
                Q.put(kam)

print( -1 if dist[N-1]==N+1 else dist[N-1] )