#include<iostream>
#include<cstring>
using namespace std;
int zhen[1005][1005];
int main(){
	long long ans=0;
	int n,m;
	cin>>n>>m;
	memset(zhen,0x3f,sizeof(zhen));
	for(int i=0,a,b,w;i<m;i++){
		cin>>a>>b>>w;
		zhen[a][b]=w;
	}for(int k=1;k<=n;k++)
		for(int j=1;j<=n;j++)
			for(int i=1;i<=n;i++)
				if(k!=i&&j!=i&&k!=j&&zhen[j][i]>zhen[k][i]+zhen[j][k]){
					zhen[j][i]=zhen[k][i]+zhen[j][k];
				}
	for(int i=2;i<=n;i++){
		ans+=zhen[1][i];
		ans+=zhen[i][1];
	}cout<<ans;
	return 0;
}
弗洛伊德算法