INF = 10**10 from collections import deque N, M = map(int, input().split()) G = [list() for _ in range(N + 1)] for i in range(M): u, v = map(int, input().split()) G[u].append(v) G[v].append(u) K = int(input()) iwai = [False]*(N + 1) if K: A = list(map(int, input().split())) for a in A: iwai[a] = True # 頂点拡張BFS dist = [[INF] * (5) for _ in range(N + 1)] # dist[pos][level] dist[1][0] = 0 que = deque() que.append((1, 0)) while que: pos, level = que.popleft() for nex in G[pos]: # nex は 岩井頂点なら、level を1つあげる # そうでないなら、0 にする if iwai[nex]: nexlevel = level + 1 else: nexlevel = 0 # dist[nex][nexlevel] を短くできるならする if nexlevel != 5 and dist[nex][nexlevel] > dist[pos][level] + 1: dist[nex][nexlevel] = dist[pos][level] + 1 que.append((nex, nexlevel)) ans = min(dist[-1]) if ans == INF: ans = -1 print(ans)