#include <bits/stdc++.h>
using namespace std;
#define RE register
#define INF 2147483647
#define maxn 10010
#define ll long long
ll n,m,ans=0,fa[5001],k;
struct node{
ll a,b,c;
}f[5001];
inline bool cmp(node x,node y){
return x.c>y.c;
}
inline void fread(ll &x){
x=0;
int f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
ch=getchar();
}
if(ch=='-')f=-1,ch=getchar();
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
x*=f;
}
inline ll fat(ll x){
if(fa[x]==x)return fa[x];
fa[x]=fat(fa[x]);
return fa[x];
}
inline void kus(){
for(RE int i=1;i<=m;i++){
int f1=fat(f[i].a);
int f2=fat(f[i].b);
if(f1!=f2){
fa[f2]=f1;
k++;
ans+=f[i].c;
if(k==n-1)return;
}
}
}
int main(){
fread(n);
fread(m);
for(RE int i=1;i<=m;i++){
fread(f[i].a);
fread(f[i].b);
fread(f[i].c);
}
sort(f+1,f+1+n,cmp);
for(int i=1;i<=5001;i++)fa[i]=i;
kus();
printf("%d",ans);
return 0;
}