#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 1001
using namespace std;
int read(){
int x=0;
char e=getchar();
while(e<'0'||e>'9') e=getchar();
while(e>='0'&&e<='9'){
x=x*10+e-'0';
e=getchar();
}
return x;
}
struct node{
int x,y,l;
}a[maxn*10];
int cmp(node c,node v){
return c.l<v.l;
}
int n,m,k,f[maxn],ans,num;
int find(int x){
return f[x]=x?f[x]:f[x]=find(f[x]);
}
int main(){
n=read(),m=read(),k=read();
for(int i=1;i<=n;i++) f[i]=i;
for(int i=1;i<=m;i++) a[i].x=read(),a[i].y=read(),a[i].l=read();
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++){
int fx=find(a[i].x),fy=find(a[i].y);
if(fx!=fy) f[fx]=fy,ans+=a[i].l,num++;
if(n-num==k){
printf("%d",ans);
return 0;
}
}
printf("No Answer");
return 0;
}
why? How should I do?