#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1001000;
struct egde{
int x,y,w;
}e[N];
int n,m,zhi;
int fu[N];
int cmp(egde a,egde b){
return a.w<b.w;
}
int root(int a){
return fu[a]==a?a:fu[a]=root(fu[a]);
}
void merge(int a,int b){
fu[root(a)] = root(b);
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for(int i=1;i<=m;i++){
cin >> e[i].x >> e[i].y >> e[i].w;
if(i<n) {
cout << "-1\n";
continue;
}
else {
int ans = 0 , cnt = 1 , zhi = 0;
sort(e+1,e+1+i,cmp);
for(int j=1;j<=n;j++) fu[j] = j;
for(int j=1;j<=i;j++){
if(root(e[j].x)!=root(e[j].y)){
merge(e[j].x,e[j].y);
ans += e[j].w;
cnt++;
}
if(cnt==n) {
cout << ans << endl;
zhi = 1;
break;
}
}
if(!zhi)
cout << "-1" << endl;
}
}
return 0;
}