// TranThienPhuc2657
#include <bits/stdc++.h>
using namespace std;
#define file "TASK"
#define TIME 1.0 * clock() / CLOCKS_PER_SEC
#define ll long long
#define pb push_back
#define fi first
#define se second
#define pii pair <int, int>
#define pll pair <ll, ll>
#define Sz(x) ((int) (x).size())
#define getBit(mask, i) (((mask) >> (i)) & 1)
template <typename T1, typename T2> bool mini(T1 &A, T2 B) {if (A > B) A = B; else return 0; return 1;}
template <typename T1, typename T2> bool maxi(T1 &A, T2 B) {if (A < B) A = B; else return 0; return 1;}
const int inf = 1e9 + 7;
const ll linf = 1e18l + 7;
const int mod = 1e9 + 7;
const int N = 5e4 + 5;
int n, m, c, r, k;
vector <pii> adj[N];
int d[N], root[N];
pii dp[N][15];
vector <int> res;
// inp
void inp() {
cin >> n >> m >> c >> r >> k;
for (int i = 1; i <= m; i++) {
int u, v, w; cin >> u >> v >> w;
adj[u].pb({v, w});
adj[v].pb({u, w});
}
}
// init
void init() {
}
// proc
void dijkstra() {
priority_queue <pii, vector <pii>, greater <pii>> pq;
for (int u = 1; u <= n; u++) pq.push({d[u], u});
while (!pq.empty()) {
int u = pq.top().se, du = pq.top().fi; pq.pop();
if (du > d[u]) continue;
for (pii e: adj[u]) {
int v = e.fi, w = e.se;
int l = du + w;
if (l > r) l = inf;
if (mini(d[v], l)) {
pq.push({l, v});
root[v] = root[u];
}
}
}
}
bool notHasRoot(int u, int turn, int root) {
for (int i = 1; i < turn; i++) if (dp[u][i].se == root) return false;
return true;
}
void proc() {
for (int u = 1; u <= n; u++) {
d[u] = ((u <= c) ? 0 : inf);
root[u] = u;
}
dijkstra();
for (int u = 1; u <= n; u++) dp[u][1] = {d[u], root[u]};
for (int turn = 2; turn <= k; turn++) {
for (int u = 1; u <= n; u++) {
d[u] = inf;
root[u] = u;
}
for (int u = 1; u <= n; u++) {
for (pii e: adj[u]) {
int v = e.fi, w = e.se;
for (int pre = 1; pre < turn; pre++) {
if (notHasRoot(v, turn, dp[u][pre].se) and mini(d[v], dp[u][pre].fi + w)) {
root[v] = dp[u][pre].se;
}
}
}
}
dijkstra();
for (int u = 1; u <= n; u++) dp[u][turn] = {d[u], root[u]};
}
for (int u = c + 1; u <= n; u++) if (dp[u][k].fi <= r) res.pb(u);
cout << Sz(res) << "\n";
for (int u: res) cout << u << "\n";
}
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen(file".inp", "r")) {
freopen(file".inp", "r", stdin);
freopen(file".out", "w", stdout);
}
inp();
init();
proc();
cerr << "Time elapsed: " << TIME << "s.\n";
return 0;
}
Ly8gVHJhblRoaWVuUGh1YzI2NTcKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmlsZSAiVEFTSyIKI2RlZmluZSBUSU1FIDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGlpIHBhaXIgPGludCwgaW50PgojZGVmaW5lIHBsbCBwYWlyIDxsbCwgbGw+CiNkZWZpbmUgU3ooeCkgKChpbnQpICh4KS5zaXplKCkpCiNkZWZpbmUgZ2V0Qml0KG1hc2ssIGkpICgoKG1hc2spID4+IChpKSkgJiAxKQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBib29sIG1pbmkoVDEgJkEsIFQyIEIpIHtpZiAoQSA+IEIpIEEgPSBCOyBlbHNlIHJldHVybiAwOyByZXR1cm4gMTt9CnRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IGJvb2wgbWF4aShUMSAmQSwgVDIgQikge2lmIChBIDwgQikgQSA9IEI7IGVsc2UgcmV0dXJuIDA7IHJldHVybiAxO30KY29uc3QgaW50IGluZiA9IDFlOSArIDc7CmNvbnN0IGxsIGxpbmYgPSAxZTE4bCArIDc7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgTiA9IDVlNCArIDU7CgppbnQgbiwgbSwgYywgciwgazsKdmVjdG9yIDxwaWk+IGFkaltOXTsKaW50IGRbTl0sIHJvb3RbTl07CnBpaSBkcFtOXVsxNV07CnZlY3RvciA8aW50PiByZXM7CgovLyBpbnAKdm9pZCBpbnAoKSB7CiAgICBjaW4gPj4gbiA+PiBtID4+IGMgPj4gciA+PiBrOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgaSsrKSB7CiAgICAgICAgaW50IHUsIHYsIHc7IGNpbiA+PiB1ID4+IHYgPj4gdzsKICAgICAgICBhZGpbdV0ucGIoe3YsIHd9KTsKICAgICAgICBhZGpbdl0ucGIoe3UsIHd9KTsKICAgIH0KfQoKLy8gaW5pdAp2b2lkIGluaXQoKSB7CiAgICAKfQoKLy8gcHJvYwp2b2lkIGRpamtzdHJhKCkgewogICAgcHJpb3JpdHlfcXVldWUgPHBpaSwgdmVjdG9yIDxwaWk+LCBncmVhdGVyIDxwaWk+PiBwcTsKICAgIGZvciAoaW50IHUgPSAxOyB1IDw9IG47IHUrKykgcHEucHVzaCh7ZFt1XSwgdX0pOwogICAgCiAgICB3aGlsZSAoIXBxLmVtcHR5KCkpIHsKICAgICAgICBpbnQgdSA9IHBxLnRvcCgpLnNlLCBkdSA9IHBxLnRvcCgpLmZpOyBwcS5wb3AoKTsKICAgICAgICBpZiAoZHUgPiBkW3VdKSBjb250aW51ZTsKICAgICAgICAKICAgICAgICBmb3IgKHBpaSBlOiBhZGpbdV0pIHsKICAgICAgICAgICAgaW50IHYgPSBlLmZpLCB3ID0gZS5zZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGludCBsID0gZHUgKyB3OwogICAgICAgICAgICBpZiAobCA+IHIpIGwgPSBpbmY7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAobWluaShkW3ZdLCBsKSkgewogICAgICAgICAgICAgICAgcHEucHVzaCh7bCwgdn0pOwogICAgICAgICAgICAgICAgcm9vdFt2XSA9IHJvb3RbdV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmJvb2wgbm90SGFzUm9vdChpbnQgdSwgaW50IHR1cm4sIGludCByb290KSB7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IHR1cm47IGkrKykgaWYgKGRwW3VdW2ldLnNlID09IHJvb3QpIHJldHVybiBmYWxzZTsKICAgIHJldHVybiB0cnVlOwp9Cgp2b2lkIHByb2MoKSB7CiAgICBmb3IgKGludCB1ID0gMTsgdSA8PSBuOyB1KyspIHsKICAgICAgICBkW3VdID0gKCh1IDw9IGMpID8gMCA6IGluZik7CiAgICAgICAgcm9vdFt1XSA9IHU7CiAgICB9CiAgICBkaWprc3RyYSgpOwogICAgZm9yIChpbnQgdSA9IDE7IHUgPD0gbjsgdSsrKSBkcFt1XVsxXSA9IHtkW3VdLCByb290W3VdfTsKICAgIAogICAgZm9yIChpbnQgdHVybiA9IDI7IHR1cm4gPD0gazsgdHVybisrKSB7CiAgICAgICAgZm9yIChpbnQgdSA9IDE7IHUgPD0gbjsgdSsrKSB7CiAgICAgICAgICAgIGRbdV0gPSBpbmY7CiAgICAgICAgICAgIHJvb3RbdV0gPSB1OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmb3IgKGludCB1ID0gMTsgdSA8PSBuOyB1KyspIHsKICAgICAgICAgICAgZm9yIChwaWkgZTogYWRqW3VdKSB7CiAgICAgICAgICAgICAgICBpbnQgdiA9IGUuZmksIHcgPSBlLnNlOwogICAgICAgICAgICAgICAgZm9yIChpbnQgcHJlID0gMTsgcHJlIDwgdHVybjsgcHJlKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAobm90SGFzUm9vdCh2LCB0dXJuLCBkcFt1XVtwcmVdLnNlKSBhbmQgbWluaShkW3ZdLCBkcFt1XVtwcmVdLmZpICsgdykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFt2XSA9IGRwW3VdW3ByZV0uc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRpamtzdHJhKCk7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgdSA9IDE7IHUgPD0gbjsgdSsrKSBkcFt1XVt0dXJuXSA9IHtkW3VdLCByb290W3VdfTsKICAgIH0KICAgIAogICAgZm9yIChpbnQgdSA9IGMgKyAxOyB1IDw9IG47IHUrKykgaWYgKGRwW3VdW2tdLmZpIDw9IHIpIHJlcy5wYih1KTsKICAgIGNvdXQgPDwgU3oocmVzKSA8PCAiXG4iOwogICAgZm9yIChpbnQgdTogcmVzKSBjb3V0IDw8IHUgPDwgIlxuIjsKfQoKc2lnbmVkIG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbihmaWxlIi5pbnAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihmaWxlIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKGZpbGUiLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBpbnAoKTsKICAgIGluaXQoKTsKICAgIHByb2MoKTsKICAgIGNlcnIgPDwgIlRpbWUgZWxhcHNlZDogIiA8PCBUSU1FIDw8ICJzLlxuIjsKICAgIHJldHVybiAwOwp9Cg==