#include <iostream> #include <vector> #include <queue> using namespace std; int main() { int n,k,a,b; cin>>n>>k>>a>>b; vector<vector<int>> Adj(n+1); for(int i=0;i<k;++i){ int x,y; cin>>x>>y; Adj[x].push_back(y); Adj[y].push_back(x); } vector<char> dst(n+1,-1); queue<int> q; q.push(1); dst[1]=0; bool cont=true; while(!q.empty()&&cont){ int v=q.front(); q.pop(); for(int i : Adj[v]) if(dst[i]==-1){ dst[i]=dst[v]+1; q.push(i); if(i==n){ cont=false; break; } } } if(dst[n]!=-1 && dst[n]<=b/a) cout<<a*dst[n]<<'\n'; else cout<<b<<'\n'; }