#include <bits/stdc++.h>
using namespace std;
int sz[200000], par[200000];
vector<pair<int, pair<int,int>>> mp;
int fs(int a){
return par[a] == a ? a : (par[a] = fs(par[a]));
}
int us(int a, int b){
a = fs(a);
b = fs(b);
if(a != b){
par[b] = a;
sz[a] += sz[b];
return 1;
}
return 0;
}
int main() {
int m, n, w, x, y;
long long s, tol = 0; cin >> n >> m >> s;
for(int i = 0; i < m; i++){
cin >> x >> y >> w;
mp.push_back({w, {x, y}});
tol += w;
}
sort(mp.begin(), mp.end(), greater<vector<pair<int, pair<int,int>>>>());
for(int i = 1; i <= n; i++){
par[i] = i;
sz[i] = 1;
}
bool
long long cnt = 0, tmp = 0;
for(auto i: mp){
if(cnt == n - 1 s + tmp >= tol) break;
if(us(i.second.first, i.second.second)){
cnt++;
tmp += i.first;
}
}
cout << s;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBzelsyMDAwMDBdLCBwYXJbMjAwMDAwXTsKdmVjdG9yPHBhaXI8aW50LCBwYWlyPGludCxpbnQ+Pj4gbXA7CgppbnQgZnMoaW50IGEpewogICAgcmV0dXJuIHBhclthXSA9PSBhID8gYSA6IChwYXJbYV0gPSBmcyhwYXJbYV0pKTsKfQoKaW50IHVzKGludCBhLCBpbnQgYil7CiAgICBhID0gZnMoYSk7CiAgICBiID0gZnMoYik7CiAgICBpZihhICE9IGIpewogICAgICAgIHBhcltiXSA9IGE7CiAgICAgICAgc3pbYV0gKz0gc3pbYl07CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICByZXR1cm4gMDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbSwgbiwgdywgeCwgeTsgCiAgICBsb25nIGxvbmcgcywgdG9sID0gMDsgY2luID4+IG4gPj4gbSA+PiBzOwogICAgZm9yKGludCBpID0gMDsgaSA8IG07IGkrKyl7CiAgICAgICAgY2luID4+IHggPj4geSA+PiB3OwogICAgICAgIG1wLnB1c2hfYmFjayh7dywge3gsIHl9fSk7CiAgICAgICAgdG9sICs9IHc7CiAgICB9CiAgICBzb3J0KG1wLmJlZ2luKCksIG1wLmVuZCgpLCBncmVhdGVyPHZlY3RvcjxwYWlyPGludCwgcGFpcjxpbnQsaW50Pj4+PigpKTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBwYXJbaV0gPSBpOwogICAgICAgIHN6W2ldID0gMTsKICAgIH0KICAgIGJvb2wgCiAgICBsb25nIGxvbmcgY250ID0gMCwgdG1wID0gMDsKICAgIGZvcihhdXRvIGk6IG1wKXsKICAgICAgICBpZihjbnQgPT0gbiAtIDEgcyArIHRtcCA+PSB0b2wpIGJyZWFrOwogICAgICAgIGlmKHVzKGkuc2Vjb25kLmZpcnN0LCBpLnNlY29uZC5zZWNvbmQpKXsKICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgIHRtcCArPSBpLmZpcnN0OwogICAgICAgICAgICAKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IHM7CiAgICByZXR1cm4gMDsKfQo=