n,m = map(int,input().split()) g = [ [] for _ in range(n+1)] for _ in range(m): u,v = map(int,input().split()) g[u] += [v] g[v] += [u] k = int(input()) if k != 0: a = list(map(int,input().split())) else: a = [] di = {} a = set(a) from collections import deque d = deque() d.append((1,0,0)) di[(1,0)] = 1 while d: t,k,kai = d.popleft() if k < 5: for A in g[t]: if A == n: print(kai+1) exit() if A in a: q = 1 else: q = - k if (A,k+q) not in di: di[(A,k+q)] = 1 d.append((A,k+q,kai+1)) print(-1)