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