n,m=map(int,input().split()) a=[[]for i in range(n)] for i in range(m): s,t=map(int,input().split()) a[s-1].append(t-1) a[t-1].append(s-1) k=int(input()) if k>0: b=set(map(int,input().split())) else: b=set() c=[[10**10 for _ in range(5)]for _ in range(n)] c[0][0]=0 now={(0,0)} while now: new=set() for i in now: for j in a[i[0]]: if j+1 in b: if i[1]!=4: if c[j][i[1]+1]==10**10: c[j][i[1]+1]=c[i[0]][i[1]]+1 new.add((j,i[1]+1)) else: if c[j][0]==10**10: c[j][0]=c[i[0]][i[1]]+1 new.add((j,0)) now=new z=min(c[-1]) if z==10**10: print(-1) else: print(z)