#include <bits/stdc++.h>
using namespace std;
#define MAXN 1000
#define MAXM 100000
int ans=0;
struct edge
{
int next,to,v;
}e[MAXM];
int h[MAXN],ei=0,n,m,s;
void add(int x,int y,int v)
{
++ei;
e[ei].next=h[x];
h[x]=ei;
e[ei].to=y;
e[ei].v=v;
}
int dis[MAXN],u[MAXM];
void spfa(int f)
{
memset(dis,0x3f,sizeof(dis));
dis[f]=0;
queue<int>qu;
qu.push(f);
u[f]=1;
while(!qu.empty())
{
int f1=qu.front();
qu.pop();
u[f1]=0;
for(int i=h[f1];i;i=e[i].next)
{
int to=e[i].to;
int v=e[i].v;
if(dis[to]>dis[f1]+v)
{
dis[to]=dis[f1]+v;
if(u[to]==0)
{
qu.push(to);
u[to]=1;
}
}
}
}
}
int main()
{
cin >> n >> m;
for(int i=1;i<=m;++i)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
add(v,u,w);
ans+=w;
}
ans+=28;
spfa(s);
cout << ans << endl;
return 0;
}
rt