#include <bits/stdc++.h>
#define maxn 1000005
#define maxm 10000005
#define maxc 1000000007
#define mp make_pair
#define pb push_back
#define F first
#define S second
#define pii pair<long long, long long>
#define fort(i, a, b) for(int i = (a); i <= (b); i++)
#define ford(i, a, b) for(int i = (a); i >= (b); i--)
#define Task "UPGRANET"
#define fast ios_base::sync_with_stdio(0);cin.tie();cout.tie();
#define stop1 {cout << "-1\n"; return;}
#define stop2 {cout << "0\n"; return;}
#define stop3 {cout << "yes\n"; exit(0);}
#define skip1 {cout << "Yes\n"; continue;}
#define skip2 {cout << "No\n"; continue;}
#define ll long long
using namespace std;
ll n, m, root[maxn], h[maxn], res;
pii par[maxn][20];
bool dd[maxn];
vector<pair<ll, ll> > ke[maxn];
struct canh
{
ll u, v, w;
}ed[maxn];
void setup()
{
cin >> n >> m;
fort(i, 1, m)
cin >> ed[i].u >> ed[i].v >> ed[i].w;
}
bool cmp(canh p, canh q)
{
return p.w > q.w;
}
ll getroot(ll u)
{
if(root[u] == 0) return u;
return root[u] = getroot(root[u]);
}
void make_tree()
{
sort(ed+1, ed+m+1, cmp);
fort(i, 1, m)
{
ll p = getroot(ed[i].u);
ll q = getroot(ed[i].v);
if(p == q) continue;
root[p] = q;
dd[i] = 1;
ke[ed[i].u].pb(mp(ed[i].v, ed[i].w));
ke[ed[i].v].pb(mp(ed[i].u, ed[i].w));
}
}
void dfs(ll u, ll tr)
{
fort(i, 0, int(ke[u].size()) - 1)
{
ll v = ke[u][i].F;
if(v == tr) continue;
h[v] = h[u] + 1;
par[v][0] = mp(u,ke[u][i].S);
fort(j, 1, 18)
{
par[v][j].F = par[par[v][j-1].F][j-1].F;
par[v][j].S = min(par[par[v][j-1].F][j-1].S, par[v][j-1].S);
}
dfs(v, u);
}
}
pii lca(ll u, ll v)
{
pii p;
p.S = 1ll* maxc * maxc;
if( h[u] > h[v])
swap(u, v);
ll diff = h[v] - h[u];
ford(i, 18, 0)
if((diff >> i) & 1)
{
p.S = min(p.S, par[v][i].S);
v = par[v][i].F;
}
if(v == u) return mp(u, p.S);
ford(i, 18, 0)
if(par[u][i].F != par[v][i].F)
{
p.S = min(p.S, min(par[v][i].S, par[u][i].S));
v = par[v][i].F;
u = par[u][i].F;
}
return mp(par[u][0].F, min(p.S, min(par[u][0].S, par[v][0].S)));
}
void work()
{
make_tree();
h[1] = 1;
dfs(1, 0);
fort(i, 1, m)
if(!dd[i])
{
pii l = lca(ed[i].u, ed[i].v);
res += max(0ll, l.S - ed[i].w);
}
cout << res;
}
int main()
{
fast
// freopen(Task".inp", "r", stdin);
// freopen(Task".out", "w", stdout);
setup();
work();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbWF4biAxMDAwMDA1CiNkZWZpbmUgbWF4bSAxMDAwMDAwNQojZGVmaW5lIG1heGMgMTAwMDAwMDAwNwojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAojZGVmaW5lIHBpaSBwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPgojZGVmaW5lIGZvcnQoaSwgYSwgYikgZm9yKGludCBpID0gKGEpOyBpIDw9IChiKTsgaSsrKQojZGVmaW5lIGZvcmQoaSwgYSwgYikgZm9yKGludCBpID0gKGEpOyBpID49IChiKTsgaS0tKQojZGVmaW5lIFRhc2sgIlVQR1JBTkVUIgojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKCk7Y291dC50aWUoKTsKI2RlZmluZSBzdG9wMSB7Y291dCA8PCAiLTFcbiI7IHJldHVybjt9CiNkZWZpbmUgc3RvcDIge2NvdXQgPDwgIjBcbiI7IHJldHVybjt9CiNkZWZpbmUgc3RvcDMge2NvdXQgPDwgInllc1xuIjsgZXhpdCgwKTt9CiNkZWZpbmUgc2tpcDEge2NvdXQgPDwgIlllc1xuIjsgY29udGludWU7fQojZGVmaW5lIHNraXAyIHtjb3V0IDw8ICJOb1xuIjsgY29udGludWU7fQojZGVmaW5lIGxsIGxvbmcgbG9uZwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxsIG4sIG0sIHJvb3RbbWF4bl0sIGhbbWF4bl0sIHJlczsKcGlpICBwYXJbbWF4bl1bMjBdOwpib29sIGRkW21heG5dOwp2ZWN0b3I8cGFpcjxsbCwgbGw+ID4ga2VbbWF4bl07CnN0cnVjdCBjYW5oCnsKICAgIGxsIHUsIHYsIHc7Cn1lZFttYXhuXTsKCnZvaWQgc2V0dXAoKQp7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9ydChpLCAxLCBtKQogICAgICAgIGNpbiA+PiBlZFtpXS51ID4+IGVkW2ldLnYgPj4gZWRbaV0udzsKfQoKYm9vbCBjbXAoY2FuaCBwLCBjYW5oIHEpCnsKICAgIHJldHVybiBwLncgPiBxLnc7Cn0KCmxsIGdldHJvb3QobGwgdSkKewogICAgaWYocm9vdFt1XSA9PSAwKSByZXR1cm4gdTsKICAgIHJldHVybiByb290W3VdID0gZ2V0cm9vdChyb290W3VdKTsKfQoKdm9pZCBtYWtlX3RyZWUoKQp7CiAgICBzb3J0KGVkKzEsIGVkK20rMSwgY21wKTsKICAgIGZvcnQoaSwgMSwgbSkKICAgIHsKICAgICAgICBsbCBwID0gZ2V0cm9vdChlZFtpXS51KTsKICAgICAgICBsbCBxID0gZ2V0cm9vdChlZFtpXS52KTsKICAgICAgICBpZihwID09IHEpIGNvbnRpbnVlOwogICAgICAgIHJvb3RbcF0gPSBxOwogICAgICAgIGRkW2ldID0gMTsKICAgICAgICBrZVtlZFtpXS51XS5wYihtcChlZFtpXS52LCBlZFtpXS53KSk7CiAgICAgICAga2VbZWRbaV0udl0ucGIobXAoZWRbaV0udSwgZWRbaV0udykpOwogICAgfQp9Cgp2b2lkIGRmcyhsbCB1LCBsbCB0cikKewogICAgZm9ydChpLCAwLCBpbnQoa2VbdV0uc2l6ZSgpKSAtIDEpCiAgICB7CiAgICAgICAgbGwgdiA9IGtlW3VdW2ldLkY7CiAgICAgICAgaWYodiA9PSB0cikgY29udGludWU7CiAgICAgICAgaFt2XSA9IGhbdV0gKyAxOwogICAgICAgIHBhclt2XVswXSA9IG1wKHUsa2VbdV1baV0uUyk7CiAgICAgICAgZm9ydChqLCAxLCAxOCkKICAgICAgICB7CiAgICAgICAgICAgIHBhclt2XVtqXS5GID0gcGFyW3Bhclt2XVtqLTFdLkZdW2otMV0uRjsKICAgICAgICAgICAgcGFyW3ZdW2pdLlMgPSBtaW4ocGFyW3Bhclt2XVtqLTFdLkZdW2otMV0uUywgcGFyW3ZdW2otMV0uUyk7CiAgICAgICAgfQogICAgICAgIGRmcyh2LCB1KTsKICAgIH0KfQoKcGlpIGxjYShsbCB1LCBsbCB2KQp7CiAgICBwaWkgcDsKICAgIHAuUyA9IDFsbCogbWF4YyAqIG1heGM7CiAgICBpZiggaFt1XSA+IGhbdl0pCiAgICAgICAgc3dhcCh1LCB2KTsKICAgIGxsIGRpZmYgPSBoW3ZdIC0gaFt1XTsKICAgIGZvcmQoaSwgMTgsIDApCiAgICAgICAgaWYoKGRpZmYgPj4gaSkgJiAxKQogICAgICAgIHsKICAgICAgICAgICAgcC5TID0gbWluKHAuUywgcGFyW3ZdW2ldLlMpOwogICAgICAgICAgICB2ID0gcGFyW3ZdW2ldLkY7CgogICAgICAgIH0KICAgIGlmKHYgPT0gdSkgcmV0dXJuIG1wKHUsIHAuUyk7CiAgICBmb3JkKGksIDE4LCAwKQogICAgICAgIGlmKHBhclt1XVtpXS5GICE9IHBhclt2XVtpXS5GKQogICAgICAgIHsKICAgICAgICAgICAgcC5TID0gbWluKHAuUywgbWluKHBhclt2XVtpXS5TLCBwYXJbdV1baV0uUykpOwogICAgICAgICAgICB2ID0gcGFyW3ZdW2ldLkY7CiAgICAgICAgICAgIHUgPSBwYXJbdV1baV0uRjsKICAgICAgICB9CiAgICByZXR1cm4gbXAocGFyW3VdWzBdLkYsIG1pbihwLlMsIG1pbihwYXJbdV1bMF0uUywgcGFyW3ZdWzBdLlMpKSk7Cn0KCnZvaWQgd29yaygpCnsKICAgIG1ha2VfdHJlZSgpOwogICAgaFsxXSA9IDE7CiAgICBkZnMoMSwgMCk7CiAgICBmb3J0KGksIDEsIG0pCiAgICAgICAgaWYoIWRkW2ldKQogICAgICAgIHsKICAgICAgICAgICAgcGlpIGwgPSBsY2EoZWRbaV0udSwgZWRbaV0udik7CiAgICAgICAgICAgIHJlcyArPSBtYXgoMGxsLCBsLlMgLSBlZFtpXS53KTsKICAgICAgICB9CiAgICBjb3V0IDw8IHJlczsKfQoKCmludCBtYWluKCkKewogICAgZmFzdAogIC8vICBmcmVvcGVuKFRhc2siLmlucCIsICJyIiwgc3RkaW4pOwogIC8vICBmcmVvcGVuKFRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIHNldHVwKCk7CiAgICB3b3JrKCk7CiAgICByZXR1cm4gMDsKfQo=