#include <bits/stdc++.h>
#ifndef ONLINE_JUDGE
#include "debug.h"
#else
#define debug(...)
#endif
#define int long long
#define pep_Guardiola \
ios::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
using namespace std;
void io()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif
}
const int inf = 1e16;
signed main()
{
pep_Guardiola
io();
int n, m, k;
cin >> n >> m >> k;
vector<vector<pair<int, int>>> adj(n + 1);
for (int i = 0; i < m; i++)
{
int u, v, w;
cin >> u >> v >> w;
adj[u].push_back({v, w});
}
vector<vector<int>> dist(n + 1, vector<int>(k, inf));
dist[1][0] = 0;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq;
pq.push({0, 1});
while (pq.size())
{
auto [d, u] = pq.top();
pq.pop();
sort(dist[u].begin(), dist[u].end());
if (d > dist[u][k - 1])
continue;
for (auto [v, w] : adj[u])
{
sort(dist[v].begin(), dist[v].end());
if (dist[v][k - 1] > w + d)
{
dist[v][k - 1] = w + d;
pq.push({w + d, v});
}
}
}
sort(dist[n].begin(), dist[n].end());
for (auto &i : dist[n])
cout << i << " ";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpZm5kZWYgT05MSU5FX0pVREdFCiNpbmNsdWRlICJkZWJ1Zy5oIgojZWxzZQojZGVmaW5lIGRlYnVnKC4uLikKI2VuZGlmCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIHBlcF9HdWFyZGlvbGEgICAgICBcCiAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IFwKICBjaW4udGllKDApOyAgICAgICAgICAgICAgXAogIGNvdXQudGllKDApOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIGlvKCkKewojaWZuZGVmIE9OTElORV9KVURHRQogIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogIC8vIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiNlbmRpZgp9CmNvbnN0IGludCBpbmYgPSAxZTE2OwpzaWduZWQgbWFpbigpCnsKICBwZXBfR3VhcmRpb2xhCiAgaW8oKTsKICBpbnQgbiwgbSwgazsKICBjaW4gPj4gbiA+PiBtID4+IGs7CiAgdmVjdG9yPHZlY3RvcjxwYWlyPGludCwgaW50Pj4+IGFkaihuICsgMSk7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspCiAgewogICAgaW50IHUsIHYsIHc7CiAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CiAgICBhZGpbdV0ucHVzaF9iYWNrKHt2LCB3fSk7CiAgfQogIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZGlzdChuICsgMSwgdmVjdG9yPGludD4oaywgaW5mKSk7CiAgZGlzdFsxXVswXSA9IDA7CiAgcHJpb3JpdHlfcXVldWU8cGFpcjxpbnQsIGludD4sIHZlY3RvcjxwYWlyPGludCwgaW50Pj4sIGdyZWF0ZXI8Pj4gcHE7CiAgcHEucHVzaCh7MCwgMX0pOwogIHdoaWxlIChwcS5zaXplKCkpCiAgewogICAgYXV0byBbZCwgdV0gPSBwcS50b3AoKTsKICAgIHBxLnBvcCgpOwogICAgc29ydChkaXN0W3VdLmJlZ2luKCksIGRpc3RbdV0uZW5kKCkpOwogICAgaWYgKGQgPiBkaXN0W3VdW2sgLSAxXSkKICAgICAgY29udGludWU7CiAgICBmb3IgKGF1dG8gW3YsIHddIDogYWRqW3VdKQogICAgewogICAgICBzb3J0KGRpc3Rbdl0uYmVnaW4oKSwgZGlzdFt2XS5lbmQoKSk7CiAgICAgIGlmIChkaXN0W3ZdW2sgLSAxXSA+IHcgKyBkKQogICAgICB7CiAgICAgICAgZGlzdFt2XVtrIC0gMV0gPSB3ICsgZDsKICAgICAgICBwcS5wdXNoKHt3ICsgZCwgdn0pOwogICAgICB9CiAgICB9CiAgfQogIHNvcnQoZGlzdFtuXS5iZWdpbigpLCBkaXN0W25dLmVuZCgpKTsKICBmb3IgKGF1dG8gJmkgOiBkaXN0W25dKQogICAgY291dCA8PCBpIDw8ICIgIjsKfQ==