#include using namespace std; using ll =long long; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll N,M; cin>>N>>M; vector> G(N); for(int i=0;i>u>>v; u--;v--; G[u].push_back(v); G[v].push_back(u); } vector I(N,0); int K; cin>>K; for(int i=0;i>a; I[a-1]=1; } queue> Q; Q.push({0,0}); vector> D(N,vector(5,1e18)); D[0][0]=0; vector> seen(N,vector(5,0)); while(!Q.empty()){ auto [n,c]=Q.front(); Q.pop(); if(seen[n][c])continue; seen[n][c]=1; for(int v:G[n]){ int nc=c; if(I[v])nc++; else nc=0; if(nc==5)continue; if(seen[v][nc])continue; if(D[v][nc]<=D[n][c]+1)continue; D[v][nc]=D[n][c]+1; Q.push({v,nc}); } } cout<<(D[N-1][0]<1e17?D[N-1][0]:-1)<<"\n"; }