import sys sys.setrecursionlimit(5*10**5) n,m = map(int,input().split()) h = [set() for i in range(n)] for i in range(m): u,v = map(int,input().split()) u -= 1 v -= 1 h[u].add(v) h[v].add(u) #print(h) k = int(input()) if k != 0: a = set([int(x)-1 for x in input().split()]) else: a = set() ans = [10**18] #(頂点i)+(遭遇回数)*(頂点数n) dat = [True]*(5*n) def bfs(i,prev,dist,n): #print(i,prev,dist,n) dat[i] = False if i%n == n-1: ans[0] = min(ans[0],dist) for j in h[i%n]: if j in a: nex = j+i//n*n+n else: nex = j if nex < 5*n and dat[nex]: bfs(nex,i,dist+1,n) bfs(0,-1,0,n) if ans[0] != 10**18: print(ans[0]) else: print(-1)