#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,a,b,d[4][100005],dis[7][7][100005];
vector <pair<int,int>> ve[100005],vec[100005];
void DIJ()
{
priority_queue <pair<int,pair<int,int>>,vector<pair<int,pair<int,int>>>,greater<pair<int,pair<int,int>>>> q;
for (int u=1;u<=n;u++) for (int i=0;i<=a;i++) d[i][u]=1e18;
d[0][1]=0,q.push({0,{1,0}});
while (q.size())
{
int c_w=q.top().first;
int u=q.top().second.first,mx=q.top().second.second;
q.pop();
if (d[mx][u]<c_w) continue;
for (pair <int,int> p : ve[u])
{
int v=p.first,w=p.second;
if (d[mx][v]>d[mx][u]+w) d[mx][v]=d[mx][u]+w,q.push({d[mx][v],{v,mx}});
if (mx<a && d[mx+1][v]>d[mx][u]) d[mx+1][v]=d[mx][u],q.push({d[mx+1][v],{v,mx+1}});
}
}
}
void DIJDL()
{
priority_queue <pair<pair<int,int>,pair<int,int>>,vector<pair<pair<int,int>,pair<int,int>>>,greater<pair<pair<int,int>,pair<int,int>>>> q;
for (int u=1;u<=n;u++) for (int s=0;s<=b+1;s++) for (int r=0;r<=b+1;r++) dis[s][r][u]=1e18;
for (int u=1;u<=n;u++) for (int j=0;j<=a;j++) dis[0][0][u]=min(dis[0][0][u],d[j][u]);
for (int u=1;u<=n;u++) if (dis[0][0][u]!=1e18) q.push({{dis[0][0][u],0},{u,0}});
while (!q.empty())
{
int c_w=q.top().first.first,r=q.top().first.second;
int u=q.top().second.first,s=q.top().second.second;
q.pop();
if (dis[s][r][u]<c_w) continue;
for (pair <int,int> p : vec[u])
{
int v=p.first,w=p.second;
int nexts=min(s+1,b+1);
if (dis[nexts][r][v]>dis[s][r][u]+w) dis[nexts][r][v]=dis[s][r][u]+w,q.push({{dis[nexts][r][v],r},{v,nexts}});
if (r<b && dis[nexts][r+1][v]>dis[s][r][u]+2*w) dis[nexts][r+1][v]=dis[s][r][u]+2*w,q.push({{dis[nexts][r+1][v],r+1},{v,nexts}});
}
}
for (int u=2;u<=n;u++)
{
int res=dis[b+1][b][u];
for (int s=0;s<=b;s++) res=min(res,dis[s][s][u]);
if (res!=1e18) cout<<res<<' ';
else cout<<-1<<' ';
}
}
signed main()
{
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
freopen("HELP.INP","r",stdin);
freopen("HELP.OUT","w",stdout);
cin>>n>>m>>a>>b;
for (int i=1;i<=m;i++)
{
int u,v,w;
cin>>u>>v>>w;
ve[u].push_back({v,w});
vec[v].push_back({u,w});
}
DIJ(),DIJDL();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixtLGEsYixkWzRdWzEwMDAwNV0sZGlzWzddWzddWzEwMDAwNV07CnZlY3RvciA8cGFpcjxpbnQsaW50Pj4gdmVbMTAwMDA1XSx2ZWNbMTAwMDA1XTsKdm9pZCBESUooKQp7CiAgICBwcmlvcml0eV9xdWV1ZSA8cGFpcjxpbnQscGFpcjxpbnQsaW50Pj4sdmVjdG9yPHBhaXI8aW50LHBhaXI8aW50LGludD4+PixncmVhdGVyPHBhaXI8aW50LHBhaXI8aW50LGludD4+Pj4gcTsKICAgIGZvciAoaW50IHU9MTt1PD1uO3UrKykgZm9yIChpbnQgaT0wO2k8PWE7aSsrKSBkW2ldW3VdPTFlMTg7CiAgICBkWzBdWzFdPTAscS5wdXNoKHswLHsxLDB9fSk7CiAgICB3aGlsZSAocS5zaXplKCkpCiAgICB7CiAgICAgICAgaW50IGNfdz1xLnRvcCgpLmZpcnN0OwogICAgICAgIGludCB1PXEudG9wKCkuc2Vjb25kLmZpcnN0LG14PXEudG9wKCkuc2Vjb25kLnNlY29uZDsKICAgICAgICBxLnBvcCgpOwogICAgICAgIGlmIChkW214XVt1XTxjX3cpIGNvbnRpbnVlOwogICAgICAgIGZvciAocGFpciA8aW50LGludD4gcCA6IHZlW3VdKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHY9cC5maXJzdCx3PXAuc2Vjb25kOwogICAgICAgICAgICBpZiAoZFtteF1bdl0+ZFtteF1bdV0rdykgZFtteF1bdl09ZFtteF1bdV0rdyxxLnB1c2goe2RbbXhdW3ZdLHt2LG14fX0pOwogICAgICAgICAgICBpZiAobXg8YSAmJiBkW214KzFdW3ZdPmRbbXhdW3VdKSBkW214KzFdW3ZdPWRbbXhdW3VdLHEucHVzaCh7ZFtteCsxXVt2XSx7dixteCsxfX0pOwogICAgICAgIH0KICAgIH0KfQp2b2lkIERJSkRMKCkKewogICAgcHJpb3JpdHlfcXVldWUgPHBhaXI8cGFpcjxpbnQsaW50PixwYWlyPGludCxpbnQ+Pix2ZWN0b3I8cGFpcjxwYWlyPGludCxpbnQ+LHBhaXI8aW50LGludD4+PixncmVhdGVyPHBhaXI8cGFpcjxpbnQsaW50PixwYWlyPGludCxpbnQ+Pj4+IHE7CiAgICBmb3IgKGludCB1PTE7dTw9bjt1KyspIGZvciAoaW50IHM9MDtzPD1iKzE7cysrKSBmb3IgKGludCByPTA7cjw9YisxO3IrKykgZGlzW3NdW3JdW3VdPTFlMTg7CiAgICBmb3IgKGludCB1PTE7dTw9bjt1KyspIGZvciAoaW50IGo9MDtqPD1hO2orKykgZGlzWzBdWzBdW3VdPW1pbihkaXNbMF1bMF1bdV0sZFtqXVt1XSk7CiAgICBmb3IgKGludCB1PTE7dTw9bjt1KyspIGlmIChkaXNbMF1bMF1bdV0hPTFlMTgpIHEucHVzaCh7e2Rpc1swXVswXVt1XSwwfSx7dSwwfX0pOwogICAgd2hpbGUgKCFxLmVtcHR5KCkpCiAgICB7CiAgICAgICAgaW50IGNfdz1xLnRvcCgpLmZpcnN0LmZpcnN0LHI9cS50b3AoKS5maXJzdC5zZWNvbmQ7CiAgICAgICAgaW50IHU9cS50b3AoKS5zZWNvbmQuZmlyc3Qscz1xLnRvcCgpLnNlY29uZC5zZWNvbmQ7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICBpZiAoZGlzW3NdW3JdW3VdPGNfdykgY29udGludWU7CiAgICAgICAgZm9yIChwYWlyIDxpbnQsaW50PiBwIDogdmVjW3VdKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHY9cC5maXJzdCx3PXAuc2Vjb25kOwogICAgICAgICAgICBpbnQgbmV4dHM9bWluKHMrMSxiKzEpOwogICAgICAgICAgICBpZiAoZGlzW25leHRzXVtyXVt2XT5kaXNbc11bcl1bdV0rdykgZGlzW25leHRzXVtyXVt2XT1kaXNbc11bcl1bdV0rdyxxLnB1c2goe3tkaXNbbmV4dHNdW3JdW3ZdLHJ9LHt2LG5leHRzfX0pOwogICAgICAgICAgICBpZiAocjxiICYmIGRpc1tuZXh0c11bcisxXVt2XT5kaXNbc11bcl1bdV0rMip3KSBkaXNbbmV4dHNdW3IrMV1bdl09ZGlzW3NdW3JdW3VdKzIqdyxxLnB1c2goe3tkaXNbbmV4dHNdW3IrMV1bdl0scisxfSx7dixuZXh0c319KTsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGludCB1PTI7dTw9bjt1KyspCiAgICB7CiAgICAgICAgaW50IHJlcz1kaXNbYisxXVtiXVt1XTsKICAgICAgICBmb3IgKGludCBzPTA7czw9YjtzKyspIHJlcz1taW4ocmVzLGRpc1tzXVtzXVt1XSk7CiAgICAgICAgaWYgKHJlcyE9MWUxOCkgY291dDw8cmVzPDwnICc7CiAgICAgICAgZWxzZSBjb3V0PDwtMTw8JyAnOwogICAgfQp9CnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksY2luLnRpZSgwKSxjb3V0LnRpZSgwKTsKICAgICBmcmVvcGVuKCJIRUxQLklOUCIsInIiLHN0ZGluKTsKICAgICBmcmVvcGVuKCJIRUxQLk9VVCIsInciLHN0ZG91dCk7CiAgICBjaW4+Pm4+Pm0+PmE+PmI7CiAgICBmb3IgKGludCBpPTE7aTw9bTtpKyspCiAgICB7CiAgICAgICAgaW50IHUsdix3OwogICAgICAgIGNpbj4+dT4+dj4+dzsKICAgICAgICB2ZVt1XS5wdXNoX2JhY2soe3Ysd30pOwogICAgICAgIHZlY1t2XS5wdXNoX2JhY2soe3Usd30pOwogICAgfQogICAgRElKKCksRElKREwoKTsKICAgIHJldHVybiAwOwp9