#include using namespace std; #define rep(i,n) for(int i=0;i>n>>m; vector> es(n); rep(i,m) { int a,b; cin>>a>>b; --a;--b; es[a].emplace_back(b); es[b].emplace_back(a); } int k; cin>>k; vector ng(n); rep(i,k) { int a; cin>>a;--a; ng[a]=1; } const int inf=1e9; const int p=5; vector> d(n,vector(p,inf)); using T=tuple; priority_queue,greater> q; q.emplace(0,0,0); d[0][0]=0; while(q.size()){ auto [x,i,j]=q.top();q.pop(); if(d[i][j]!=x) continue; for(auto to:es[i]) { int nj=j; if(ng[to]) nj++; else nj=0; if(nj==p) continue; if(d[i][j]+1