#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
int n,m,ans=0,mp[5001][5001];
int lowcost[5001];
bool vis[5001];
void prime(int n)
{
for(int i=2;i<=n;i++)
{
lowcost[i]=mp[1][i];
}
vis[1]=false;
for(int i=2;i<=n;i++)
{
int mi=inf,bj=0;
for(int j=2;j<=n;j++)
{
if(lowcost[j]<mi)
{
mi=lowcost[j];
bj=j;
}
}
vis[bj]=false;
ans+=mi;
lowcost[bj]=inf;
for(int j=2;j<=n;j++)
{
if(mp[bj][j]<lowcost[j] && vis[j])
lowcost[j]=mp[bj][j];
}
}
}
main()
{
int a,b,v;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
mp[i][j]=inf;
for(int i=1;i<=m;i++)
{
cin>>a>>b>>v;
if(v<mp[a][b])
mp[a][b]=mp[b][a]=v;
}
memset(vis,true,sizeof(vis));
prime(n);
int flag=1;
for(int i=1;i<=n;i++)
{
if(vis[i]) flag=0;
}
if(flag==1) cout<<ans;
else cout<<"orz";
return 0;
}