#include <bits/stdc++.h>
using namespace std;
const int N=100005;
const int mod=998244353;
const int inf=0x7f7f7f7f;
typedef long long ll;
struct DSU {
int fa[N];
void merge(int x,int y) {fa[x]=y;}
void init(int n) {for(int i=1;i<=n;i++) fa[i]=i;}
int find(int x) {return fa[x]==x?x:fa[x]=find(fa[x]);}
}dsu;
struct Edge {
int u,v;ll w;
bool operator<(Edge b) const {
return w>b.w;
}
}e[N];
void kruskal_solve(int n,int m,int k) {
ll sum=0;sort(e+1,e+n+1);dsu.init(n);
if(k>=n)puts("0"),exit(0);
for(int i=1;i<=m;i++) {
if(!k) break;
int u=dsu.find(e[i].u);
int v=dsu.find(e[i].v);
if(u!=v) sum+=e[i].w,k--,dsu.merge(u,v);
}
cout<<sum<<endl;
}
int main() {
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
int ___=1;
while(___--) {
int n,m,k;cin>>n>>m>>k;
for(int i=1;i<=m;i++) cin>>e[i].u>>e[i].v>>e[i].w;
kruskal_solve(n,m,k);
}
return 0;
}
死活都是70……