#include using namespace std; int main(){ int 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); } int l; cin>>l; vector dist(n,-1); priority_queue> q; for (int i=0;i>j>>k; j--; q.push({k,j}); } while (!q.empty()){ auto [d,v]=q.top(); q.pop(); if (dist[v]!=-1) continue; dist[v]=d; if (dist[v]==0) continue; for (int u:g[v]){ q.push({dist[v]-1,u}); } } vector dist2(n,-1); queue q2; if (dist[0]==-1){ dist2[0]=0; q2.push(0); } while (!q2.empty()){ int v=q2.front(); q2.pop(); for (int u:g[v]){ if (dist[u]!=-1) continue; if (dist2[u]!=-1) continue; dist2[u]=dist2[v]+1; q2.push(u); } } if (dist2[n-1]>=0){ cout<<"Yes\n"; cout<