#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';
}