# 想定解法(1112134) をChatGPTで変換した import sys from collections import deque def main(): data = list(map(int, sys.stdin.buffer.read().split())) it = iter(data) N = next(it) M = next(it) edges = [[] for _ in range(N)] for _ in range(M): u = next(it) - 1 v = next(it) - 1 edges[u].append(v) edges[v].append(u) K = next(it) is_iwai = [False] * N for _ in range(K): A = next(it) - 1 is_iwai[A] = True INF = 10**18 # dists[i][j] := 岩井星人に連続でj回会ったうえで頂点iに到達するまでの最短距離 dists = [[INF] * 5 for _ in range(N)] q = deque() q.append((0, 0)) dists[0][0] = 0 while q: now, iwai_cnt = q.popleft() nowd = dists[now][iwai_cnt] for nxt in edges[now]: next_iwai_cnt = iwai_cnt + 1 if is_iwai[nxt] else 0 if next_iwai_cnt >= 5: continue if dists[nxt][next_iwai_cnt] <= nowd + 1: continue dists[nxt][next_iwai_cnt] = nowd + 1 q.append((nxt, next_iwai_cnt)) ans = dists[N - 1][0] print(-1 if ans == INF else ans) if __name__ == "__main__": main()