// 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 = 2e9 + 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];
vector <int> vis[N];
struct Dij {
int u, du, root;
bool operator < (const Dij &ot) const {
return du > ot.du;
}
};
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 proc() {
priority_queue <Dij> pq;
for (int u = 1; u <= c; u++) pq.push({u, 0, u});
while (!pq.empty()) {
int u = pq.top().u, du = pq.top().du, root = pq.top().root; pq.pop();
if (Sz(vis[u]) >= k) continue;
bool hasSeen = false;
for (int i: vis[u]) if (i == root) {
hasSeen = true;
break;
}
if (hasSeen) continue;
vis[u].pb(root);
for (pii e: adj[u]) {
int v = e.fi, w = e.se;
if (du + w > r or Sz(vis[v]) >= k) continue;
bool hasSeen = false;
for (int i: vis[v]) if (i == root) {
hasSeen = true;
break;
}
if (hasSeen) continue;
pq.push({v, du + w, root});
}
}
for (int u = c + 1; u <= n; u++) if (Sz(vis[u]) == k) 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+IGJvb2wgbWF4aShUMSAmQSwgVDIgQikge2lmIChBIDwgQikgQSA9IEI7IGVsc2UgcmV0dXJuIDA7IHJldHVybiAxO30KY29uc3QgaW50IGluZiA9IDJlOSArIDc7CmNvbnN0IGxsIGxpbmYgPSAxZTE4bCArIDc7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgTiA9IDVlNCArIDU7CgppbnQgbiwgbSwgYywgciwgazsKdmVjdG9yIDxwaWk+IGFkaltOXTsKdmVjdG9yIDxpbnQ+IHZpc1tOXTsKc3RydWN0IERpaiB7CiAgICBpbnQgdSwgZHUsIHJvb3Q7CgogICAgYm9vbCBvcGVyYXRvciA8IChjb25zdCBEaWogJm90KSBjb25zdCB7CiAgICAgICAgcmV0dXJuIGR1ID4gb3QuZHU7CiAgICB9Cn07CnZlY3RvciA8aW50PiByZXM7CgovLyBpbnAKdm9pZCBpbnAoKSB7CiAgICBjaW4gPj4gbiA+PiBtID4+IGMgPj4gciA+PiBrOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgaSsrKSB7CiAgICAgICAgaW50IHUsIHYsIHc7IGNpbiA+PiB1ID4+IHYgPj4gdzsKICAgICAgICBhZGpbdV0ucGIoe3YsIHd9KTsKICAgICAgICBhZGpbdl0ucGIoe3UsIHd9KTsKICAgIH0KfQoKLy8gaW5pdAp2b2lkIGluaXQoKSB7Cgp9CgovLyBwcm9jCnZvaWQgcHJvYygpIHsKICAgIHByaW9yaXR5X3F1ZXVlIDxEaWo+IHBxOwoKICAgIGZvciAoaW50IHUgPSAxOyB1IDw9IGM7IHUrKykgcHEucHVzaCh7dSwgMCwgdX0pOwoKICAgIHdoaWxlICghcHEuZW1wdHkoKSkgewogICAgICAgIGludCB1ID0gcHEudG9wKCkudSwgZHUgPSBwcS50b3AoKS5kdSwgcm9vdCA9IHBxLnRvcCgpLnJvb3Q7IHBxLnBvcCgpOwogICAgICAgIAogICAgICAgIGlmIChTeih2aXNbdV0pID49IGspIGNvbnRpbnVlOwogICAgICAgIGJvb2wgaGFzU2VlbiA9IGZhbHNlOwogICAgICAgIGZvciAoaW50IGk6IHZpc1t1XSkgaWYgKGkgPT0gcm9vdCkgewogICAgICAgICAgICBoYXNTZWVuID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChoYXNTZWVuKSBjb250aW51ZTsKICAgICAgICAKICAgICAgICB2aXNbdV0ucGIocm9vdCk7CiAgICAgICAgZm9yIChwaWkgZTogYWRqW3VdKSB7CiAgICAgICAgICAgIGludCB2ID0gZS5maSwgdyA9IGUuc2U7CiAgICAgICAgICAgIGlmIChkdSArIHcgPiByIG9yIFN6KHZpc1t2XSkgPj0gaykgY29udGludWU7CiAgICAgICAgICAgIGJvb2wgaGFzU2VlbiA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKGludCBpOiB2aXNbdl0pIGlmIChpID09IHJvb3QpIHsKICAgICAgICAgICAgICAgIGhhc1NlZW4gPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGhhc1NlZW4pIGNvbnRpbnVlOwogICAgICAgICAgICBwcS5wdXNoKHt2LCBkdSArIHcsIHJvb3R9KTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIGZvciAoaW50IHUgPSBjICsgMTsgdSA8PSBuOyB1KyspIGlmIChTeih2aXNbdV0pID09IGspIHJlcy5wYih1KTsKCiAgICBjb3V0IDw8IFN6KHJlcykgPDwgIlxuIjsKICAgIGZvciAoaW50IHU6IHJlcykgY291dCA8PCB1IDw8ICJcbiI7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oZmlsZSIuaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oZmlsZSIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihmaWxlIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgaW5wKCk7CiAgICBpbml0KCk7CiAgICBwcm9jKCk7CiAgICBjZXJyIDw8ICJUaW1lIGVsYXBzZWQ6ICIgPDwgVElNRSA8PCAicy5cbiI7CiAgICByZXR1cm4gMDsKfQo=