from collections import deque import sys input = sys.stdin.readline N, M = map(int, input().split()) G = [[] for _ in range(N)] for _ in range(M): u, v = map(int, input().split()) u-=1 v-=1 G[u].append(v) G[v].append(u) K = int(input()) if K>0: A = set(map(int, input().split())) else: A = set() deq = deque() deq.append((0, 0)) INF = 10**9 dp = [[INF for _ in range(5)] for _ in range(N)] dp[0][0] = 0 while deq: v, c = deq.popleft() for nv in G[v]: if nv+1 in A: nc = c+1 else: nc = 0 if nc==5: continue if dp[nv][nc]>dp[v][c]+1: dp[nv][nc] = dp[v][c]+1 deq.append((nv, nc)) ans = min(dp[N-1]) if ans==INF: print(-1) else: print(ans)