#include using namespace std; using ll=long long; int main() { cin.tie(0)->sync_with_stdio(0); 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); } ll k;cin>>k; vectorisa(n); for(int i=0;i>a; a--; isa[a]=true; } queue>que; vector dist(n,vector(5,-1)); que.push({0,0}); dist[0][0]=0; while(!que.empty()) { auto[now,cnt]=que.front(); que.pop(); for(ll nex:g[now]) { ll cntnex=0; if(isa[nex])cntnex=cnt+1; if(cntnex==5)continue; if(dist[nex][cntnex]!=-1)continue; dist[nex][cntnex]=dist[now][cnt]+1; que.push({nex,cntnex}); } } ll ans=1LL<<60; for(auto o:dist[n-1])if(o!=-1)ans=min(ans,o); if(ans==1LL<<60)cout<<-1<