import sys sys.setrecursionlimit(10**5) import pypyjit pypyjit.set_param('max_unroll_recursion=-1') N,M=map(int,input().split()) G=[[] for _ in range(N+1)] for _ in range(M): U,V=map(int,input().split()) G[U].append(V) G[V].append(U) K=int(input()) A=set() if K:A=set(map(int,input().split())) ans=1<<30 def dfs(now,step,cnt,used:set,branch:list): global ans if now==N: ans=min(ans,step) return if now not in A: cnt=0 for i in branch: used.remove(i) if len(G[now])>=3:branch.append(now) for nxt in G[now]: if nxt in used:continue if nxt in A: if cnt==4:return else:dfs(nxt,step+1,cnt+1,used|{nxt},branch[:]) else: dfs(nxt,step+1,cnt,used|{nxt},branch[:]) dfs(1,0,0,{1},[]) if ans==1<<30:print(-1) else:print(ans)