#include<bits/stdc++.h>
using namespace std;
const int maxn=200010;
#define int long long
int fa[maxn];
struct node{
int a,b,c;
};
node s[maxn];
int find(int x)
{
if (fa[x]==x)
return x;
fa[x]=find(fa[x]);
return fa[x];
}
bool cmp(node x,node y)
{
return x.c>y.c;
}
signed main()
{
int n,m;
scanf("%lld%lld",&n,&m);
for (int i=0;i<m;i++)
scanf("%lld%lld%lld",&s[i].a,&s[i].b,&s[i].c);
for (int i=1;i<=n;i++)
fa[i]=i;
sort(s,s+m,cmp);
int ret=0,cnt=0;
for (int i=0;i<m;i++)
{
int ta=find(s[i].a);
int tb=find(s[i].b);
if (ta!=tb)
{
fa[ta]=tb;
cnt++;
ret+=s[i].c;
}
}
if (cnt!=n-1)
printf("-1");
else
printf("%lld",ret);
return 0;
}