from collections import deque 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())) vis=[5 for _ in range(N+1)] Q=deque() Q.append((1,0,0)) while Q: now,step,cnt=Q.popleft() if now not in A: cnt=0 vis[now]=cnt if now==N: exit(print(step)) for nxt in G[now]: if cnt==4: if nxt in A:continue else: if cnt+1>=vis[nxt]:continue Q.append((nxt,step+1,cnt+1)) else: if cnt+1>=vis[nxt]:continue Q.append((nxt,step+1,cnt+1)) print(-1)