//Krushkal Algorithm
#include<bits/stdc++.h>
using namespace std;
vector<int>v;
class Edge {
public:
int src;
int dest;
int wt;
};
bool cmp(Edge e1, Edge e2) {
return e1.wt > e2.wt;
}
int findParent(int ch, int *parent) {
if(parent[ch] == ch) {
return ch;
} else {
return findParent(parent[ch],parent);
}
}
void krushkal(Edge *input, int n, int m) {
sort(input+1,input+m+1, cmp);
int parent[n+1];
int count = 1;
for(int i=1;i<=n;i++) parent[i] = i;
Edge *output = new Edge[n+1];
int i = 1;
while(count != n) {
Edge currEdge = input[i++];
int srcParent = findParent(currEdge.src, parent);
int destParent = findParent(currEdge.dest, parent);
if(srcParent != destParent) {
output[count++] = currEdge;
parent[srcParent] = destParent;
} else {
v.push_back(currEdge.wt);
}
}
}
int main() {
int n,m,s;
cin>>n>>m>>s;
Edge *input = new Edge[m+1];
for(int i=1;i<=m;i++) {
cin >> input[i].src >> input[i].dest >> input[i].wt;
}
krushkal(input,n,m);
sort(v.begin(),v.end());
int ans = 0, i = 0;
for(i=0;i<v.size();i++) {
if(ans+v[i]<=s) {
ans+=v[i];
} else {
break;
}
}
cout<<i<<" "<<ans;
return 0;
}
Ly9LcnVzaGthbCBBbGdvcml0aG0KCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvcjxpbnQ+djsKY2xhc3MgRWRnZSB7CglwdWJsaWM6CglpbnQgc3JjOwoJaW50IGRlc3Q7CglpbnQgd3Q7Cn07Cgpib29sIGNtcChFZGdlIGUxLCBFZGdlIGUyKSB7CglyZXR1cm4gZTEud3QgPiBlMi53dDsKfQoKaW50IGZpbmRQYXJlbnQoaW50IGNoLCBpbnQgKnBhcmVudCkgewoJaWYocGFyZW50W2NoXSA9PSBjaCkgewoJCXJldHVybiBjaDsKCX0gZWxzZSB7CgkJcmV0dXJuIGZpbmRQYXJlbnQocGFyZW50W2NoXSxwYXJlbnQpOwoJfQp9Cgp2b2lkIGtydXNoa2FsKEVkZ2UgKmlucHV0LCBpbnQgbiwgaW50IG0pIHsKCXNvcnQoaW5wdXQrMSxpbnB1dCttKzEsIGNtcCk7CglpbnQgcGFyZW50W24rMV07CglpbnQgY291bnQgPSAxOwoJZm9yKGludCBpPTE7aTw9bjtpKyspIHBhcmVudFtpXSA9IGk7CglFZGdlICpvdXRwdXQgPSBuZXcgRWRnZVtuKzFdOwoJaW50IGkgPSAxOwoJd2hpbGUoY291bnQgIT0gbikgewoJCUVkZ2UgY3VyckVkZ2UgPSBpbnB1dFtpKytdOwoJCWludCBzcmNQYXJlbnQgPSBmaW5kUGFyZW50KGN1cnJFZGdlLnNyYywgcGFyZW50KTsKCQlpbnQgZGVzdFBhcmVudCA9IGZpbmRQYXJlbnQoY3VyckVkZ2UuZGVzdCwgcGFyZW50KTsKCQlpZihzcmNQYXJlbnQgIT0gZGVzdFBhcmVudCkgewoJCQlvdXRwdXRbY291bnQrK10gPSBjdXJyRWRnZTsKCQkJcGFyZW50W3NyY1BhcmVudF0gPSBkZXN0UGFyZW50OwoJCX0gZWxzZSB7CgkJCXYucHVzaF9iYWNrKGN1cnJFZGdlLnd0KTsKCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJaW50IG4sbSxzOwoJY2luPj5uPj5tPj5zOwoJRWRnZSAqaW5wdXQgPSBuZXcgRWRnZVttKzFdOwoJZm9yKGludCBpPTE7aTw9bTtpKyspIHsKCQljaW4gPj4gaW5wdXRbaV0uc3JjID4+IGlucHV0W2ldLmRlc3QgPj4gaW5wdXRbaV0ud3Q7Cgl9CglrcnVzaGthbChpbnB1dCxuLG0pOwoJc29ydCh2LmJlZ2luKCksdi5lbmQoKSk7CglpbnQgYW5zID0gMCwgaSA9IDA7Cglmb3IoaT0wO2k8di5zaXplKCk7aSsrKSB7CgkJaWYoYW5zK3ZbaV08PXMpIHsKCQkJYW5zKz12W2ldOwoJCX0gZWxzZSB7CgkJCWJyZWFrOwoJCX0KCX0KCWNvdXQ8PGk8PCIgIjw8YW5zOwoJcmV0dXJuIDA7Cn0=