#include<bits/stdc++.h>
using namespace std;
const int N = 100005 ;
const int M = 300005 ;
typedef long long ll;
int fa[N],n,m;
ll ans=0;
struct Edge
{
int x;
int y;
int z;
}t[M];
bool cmp(Edge a,Edge b)
{
return a.z<b.z;
}
int f(int r)
{
if(fa[r]==r)return r;
return fa[r]=f(fa[r]);
}
int main()
{
freopen("secmst.in","r",stdin);
freopen("secmst.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
fa[i]=i;
for(int i=1;i<=m;i++)
cin>>t[i].x>>t[i].y>>t[i].z;
sort(t+1,t+m+1,cmp);
for(int i=1;i<=m;i++)
{
int ax=f(t[i].x);
int ay=f(t[i].y);
if(ax==ay)continue;
ans+=t[i].z;
fa[ax]=ay;
}
cout<<ans+1;
}