#include #include #include using namespace std; using ll = long long; int main(){ int n,m; cin >> n >> m; vector>g(n); vectora(n); for(int i=0;i> u >> v; u--;v--; g[u].push_back(v); g[v].push_back(u); } int k; cin >> k; for(int i=0;i> x; x--; a[x]=true; } vector dist(n,vector(5,-1)); dist[0][0]=0; queue>q; q.push({0,0}); while(!q.empty()){ auto [x,d]=q.front();q.pop(); for(int y:g[x]){ int nd=0; if(a[y]){ nd=d+1; } if(nd==5)continue; if(dist[y][nd]!=-1)continue; dist[y][nd]=dist[x][d]+1; q.push({y,nd}); } } cout << dist[n-1][0] << endl; return 0; }