#include <cstdio> #include <map> using namespace std; int n,k,a,b,minim; int A[10000][10000]; //a=nou //b=vechi void cit() { int u,v; scanf("%d%d%d%d",&n,&k,&a,&b); minim=b; for (int i=0;i<=k;++i) { scanf("%d%d",&v,&u); A[u][v]=a; A[v][u]=a; } if ((A[1][n]!=0 ? A[1][n]:minim)<minim) minim=a; for (int u=1;u<=n;++u) for (int v=1;v<=n;++v) { if ( (A[1][v]!=0 ? A[1][v]:b) + (A[u][n]!=0 ? A[u][n]:b) + (A[u][n]!=0 ? A[u][n]:b) < minim) { minim=(A[1][v]!=0 ? A[1][v]:b) + (A[u][n]!=0 ? A[u][n]:b) + (A[u][n]!=0 ? A[u][n]:b); } } } int main() { //freopen("inter.in","r",stdin); cit(); printf("%d",minim); return 0; }