#include <stdio.h>
main()
{
//int NUM1=4;
//int NUM2=4;
int NUM1;
int NUM2;
scanf("%d",&NUM1);
scanf("%d",&NUM2);
/*
int a[NUM2];
a[0]=1;
a[1]=2;
a[2]=2;
a[3]=3;
int b[NUM2];
b[0]=2;
b[1]=3;
b[2]=4;
b[3]=4;
int c[NUM2];
c[0]=1;
c[1]=4;
c[2]=2;
c[3]=3;*/
int a[NUM2];
int b[NUM2];
int c[NUM2];
int i;
for(i=0;i<NUM2;i++)
{
scanf("%d",&a[i]);
scanf("%d",&b[i]);
scanf("%d",&c[i]);
}
int color[NUM1];
color[0]=-1;
for(i=1;i<NUM1+1;i++)
{
color[i]=0;
}
//先寻找便宜的渠 再寻找必须的渠
int t;
int jl=0;
int p=0;
while(1)
{
int min=-1;
for(i=0;i<NUM2;i++)
{
//printf("color[a[%d]]= %d\n",min);
if((min==-1)&&((color[a[i]]==0)||(color[b[i]]==0)))
{
min=c[i];
//printf("min= %d\n",min);
t=i;
}
else if((min>c[i])&&((color[a[i]]==0)||(color[b[i]]==0)))
{
min=c[i];
//printf("min= %d\n",min);
t=i;
}
}
//printf("min %d\n",min);
p=p+min;
color[a[t]]=1;
color[b[t]]=1;
jl++;
if(jl==(NUM1-1))
{
//printf("p %d\n",p);
printf("%d\n",p);
break;
}
}
}