n,m,k,i,j,x,y,min,ans,ans1:longint;
c:array[1..100,1..100] of longint;
d,pre:array[1..1000] of longint;
begin
readln(n,m);
for i:=1 to n do
for j:=1 to n do
c[i,j]:=maxlongint;
for i:=1 to m do
begin
readln(x,y,c[x,y]);
c[y,x]:=c[x,y];
end;
for i:=1 to n do
begin
d[i]:=c[1,i];
pre[i]:=1;
end;
d[1]:=0;
for i:=1 to n-1 do
begin
min:=maxlongint;
for j:=1 to n do
if (d[j]<>0)and(d[j]<min) then
begin
min:=d[j];
k:=j;
end;
d[k]:=0;
for j:=1 to n do
if (d[j]<>0) and (c[k,j]<d[j]) then
begin
d[j]:=c[k,j];
pre[j]:=k;
end;
end;
ans:=0; ans1:=0;
for i:=2 to n do
ans1:=ans1+c[pre[i],i];
for i:=1 to n do
for j:=1 to n do
if c[i,j]<>maxlongint then
ans:=ans+c[i,j];
ans:=ans div 2-ans1;
write(ans);
end.
var
f:array[1..100,1..100]of longint;
s,m,n,o,p,q,r:longint;
procedure prim;
var
lowcost:array[1..100]of longint;
closest:array[1..100]of longint;
min,max,i,j,k:longint;
begin
for i:=1to m do
begin
lowcost[i]:=f[1,i];
closest[i]:=1;
end;
for i:=1to m-1do
begin
min:=2147483647;
for j:=1to m do
if(lowcost[j]<min)and(lowcost[j]<>0)
then begin
min:=lowcost[j];
k:=j;
end;
lowcost[k]:=0;
for j:=1to m do
if f[k,j]<lowcost[j]
then begin
lowcost[j]:=f[k,j];
closest[j]:=k;
end;
end;
for i:=2to m do
r:=r-f[closest[i],i];
end;
begin
readln(m,n);
for o:=1to m do
for p:=1to m do
f[o,p]:=2147483647;
for o:=1to n do
begin
readln(p,q,s);
f[p,q]:=s;
f[q,p]:=s;
r:=r+s;
end;
prim;
write(r);
end.