#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=400000+10;
int i;
int n,m,K,A,B;
int begin[MAX],next[MAX],t[MAX],tot;
int begin2[MAX];
void add(int begin[MAX],int a,int b)
{
t[++tot]=b;
next[tot]=begin[a];
begin[a]=tot;
}
int q[MAX],dist[MAX];
void BFS(int S)
{
int i;
REP(i,1,n)
dist[i]=-1;
dist[S]=0;
int head=0,end=0;
q[end++]=S;
while(head<end)
{
int u=q[head++];
for(i=begin[u];i;i=next[i])
{
int v=t[i];
if(dist[v]==-1)
{
dist[v]=dist[u]+1;
q[end++]=v;
}
}
}
}
int dist2[MAX],is[MAX];
int hash[MAX];
void BFS2(int u)
{
int i;
REP(i,1,n)
dist2[i]=-1;
int head=0,end=0;
q[end++]=u;
dist2[u]=0;
while(head<end)
{
int u=q[head++];
for(i=begin[u];i;i=next[i])
is[t[i]]=u;
for(i=begin[u];i;i=next[i])
{
int v=t[i];
int* last=begin2+v;
for(int j=begin2[v];j;j=next[j])
{
int p=t[j];
if(is[p]!=u)
{
if(dist2[p]==-1)
{
dist2[p]=dist2[u]+1;
q[end++]=p;
}
}
else
{
*last=j;
last=next+j;
}
}
*last=0;
}
}
}
int main()
{
// freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
int i;
cin>>n>>m>>K>>A>>B;
REP(i,1,m)
{
int a,b;
scanf("%d%d",&a,&b);
add(begin,a,b);
add(begin,b,a);
add(begin2,a,b);
add(begin2,b,a);
}
BFS(K);
BFS2(K);
REP(i,1,n)
{
int ans=min(dist[i]*A,(dist[i]/2)*B + (dist[i]%2)*A);
if(dist2[i]!=-1)
ans=min(ans,dist2[i]*B);
printf("%d\n",ans);
}
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9NDAwMDAwKzEwOwoKaW50IGk7CmludCBuLG0sSyxBLEI7CgppbnQgYmVnaW5bTUFYXSxuZXh0W01BWF0sdFtNQVhdLHRvdDsKaW50IGJlZ2luMltNQVhdOwoKdm9pZCBhZGQoaW50IGJlZ2luW01BWF0saW50IGEsaW50IGIpCnsKICAgIHRbKyt0b3RdPWI7CiAgICBuZXh0W3RvdF09YmVnaW5bYV07CiAgICBiZWdpblthXT10b3Q7Cn0KCmludCBxW01BWF0sZGlzdFtNQVhdOwoKdm9pZCBCRlMoaW50IFMpCnsKICAgIGludCBpOwogICAgUkVQKGksMSxuKQogICAgICAgIGRpc3RbaV09LTE7CiAgICBkaXN0W1NdPTA7CiAgICBpbnQgaGVhZD0wLGVuZD0wOwogICAgcVtlbmQrK109UzsKICAgIHdoaWxlKGhlYWQ8ZW5kKQogICAgewogICAgICAgIGludCB1PXFbaGVhZCsrXTsKICAgICAgICBmb3IoaT1iZWdpblt1XTtpO2k9bmV4dFtpXSkKICAgICAgICB7CiAgICAgICAgICAgIGludCB2PXRbaV07CiAgICAgICAgICAgIGlmKGRpc3Rbdl09PS0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXN0W3ZdPWRpc3RbdV0rMTsKICAgICAgICAgICAgICAgIHFbZW5kKytdPXY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmludCBkaXN0MltNQVhdLGlzW01BWF07CmludCBoYXNoW01BWF07Cgp2b2lkIEJGUzIoaW50IHUpCnsKICAgIGludCBpOwogICAgUkVQKGksMSxuKQogICAgICAgIGRpc3QyW2ldPS0xOwogICAgaW50IGhlYWQ9MCxlbmQ9MDsKICAgIHFbZW5kKytdPXU7CiAgICBkaXN0Mlt1XT0wOwogICAgd2hpbGUoaGVhZDxlbmQpCiAgICB7CiAgICAgICAgaW50IHU9cVtoZWFkKytdOwogICAgICAgIGZvcihpPWJlZ2luW3VdO2k7aT1uZXh0W2ldKQogICAgICAgICAgICBpc1t0W2ldXT11OwogICAgICAgIGZvcihpPWJlZ2luW3VdO2k7aT1uZXh0W2ldKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHY9dFtpXTsKICAgICAgICAgICAgaW50KiBsYXN0PWJlZ2luMit2OwogICAgICAgICAgICBmb3IoaW50IGo9YmVnaW4yW3ZdO2o7aj1uZXh0W2pdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgcD10W2pdOwogICAgICAgICAgICAgICAgaWYoaXNbcF0hPXUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYoZGlzdDJbcF09PS0xKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGlzdDJbcF09ZGlzdDJbdV0rMTsKICAgICAgICAgICAgICAgICAgICAgICAgcVtlbmQrK109cDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgKmxhc3Q9ajsKICAgICAgICAgICAgICAgICAgICBsYXN0PW5leHQrajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAqbGFzdD0wOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKQp7Ci8vICAgIGZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgIGludCBpOwogICAgY2luPj5uPj5tPj5LPj5BPj5COwogICAgUkVQKGksMSxtKQogICAgewogICAgICAgIGludCBhLGI7CiAgICAgICAgc2NhbmYoIiVkJWQiLCZhLCZiKTsKICAgICAgICBhZGQoYmVnaW4sYSxiKTsKICAgICAgICBhZGQoYmVnaW4sYixhKTsKICAgICAgICBhZGQoYmVnaW4yLGEsYik7CiAgICAgICAgYWRkKGJlZ2luMixiLGEpOwogICAgfQogICAgQkZTKEspOwogICAgQkZTMihLKTsKICAgIFJFUChpLDEsbikKICAgIHsKICAgICAgICBpbnQgYW5zPW1pbihkaXN0W2ldKkEsKGRpc3RbaV0vMikqQiArIChkaXN0W2ldJTIpKkEpOwogICAgICAgIGlmKGRpc3QyW2ldIT0tMSkKICAgICAgICAgICAgYW5zPW1pbihhbnMsZGlzdDJbaV0qQik7CiAgICAgICAgcHJpbnRmKCIlZFxuIixhbnMpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K