#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[1005][1005],b[1005][1005],d[1005],vis[1005],ans;
void dijkstra(){
memset(d,0x3f,sizeof(d));
memset(vis,0,sizeof(vis));
d[1]=0;
queue<ll>q;
q.push(1);
while(!q.empty()){
ll u=q.front();
q.pop();
if(vis[u])continue;
vis[u]=1;
for(int i=1;i<=n;i++){
ll v=i,w=a[u][v];
if(a[u][v]==1e18||i==u)continue;
if(d[v]>d[u]+w){
d[v]=d[u]+w;
q.push(v);
}
}
}
for(int i=2;i<=n;i++)ans+=d[i];
return ;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]=1e18;
b[i][j]=1e18;
}
}
for(int i=1;i<=m;i++){
ll u,v,w;
cin>>u>>v>>w;
a[u][v]=min(a[u][v],w);
b[v][u]=min(b[v][u],w);
}
dijkstra();
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]=b[i][j];
}
}
dijkstra();
cout<<ans;
return 0;
}