1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<cmath>
6 using namespace std;
7 struct node{
8 int x,y,v;
9 }a[100000];
10 int n,m;
11 int fa[100000];
12 int cmp(node a,node b)
13 {
14 return a.v<b.v;
15 }
16 int find(int x)
17 {
18 if(fa[x]!=x)
19 {
20 fa[x]=find(fa[x]);
21 return fa[x];
22 }
23 else
24 {
25 return x;
26 }
27 }
28 int main()
29 {
30 cin>>n>>m;
31 for(int i=1;i<=m;i++)
32 {
33 int x,y,v;
34 cin>>x>>y>>v;
35 a[i].x=x;
36 a[i].y=y;
37 a[i].v=v;
38 }
39 for(int i=1;i<=n;i++)
40 {
41 fa[i]=i;
42 }
43 long long ans=0;
44 int k=0;
45 sort(a+1,a+m+1,cmp);
46 for(int i=1;i<=m;i++)
47 {
48 int r=find(a[i].x);
49 int rr=find(a[i].y);
50 if(r!=rr)
51 {
52 fa[r]=rr;
53 ans+=a[i].v
54 k++;
55 }
56 if(k==n-1)
57 {
58 break;
59 }
60 }
61 cout<<ans;
62 return 0;
63 }