#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define MASK(n) (1LL << n)
#define PhTrNghia "COLDWAR"
using namespace std;
const int maxn = 2e5 + 5;
const int inf = 1e18;
struct segtree{
struct node{
int mn, lazy;
node(){
mn = inf;
lazy = inf;
}
};
int n;
vector <node> tree;
segtree(int _n){
n = _n;
tree.assign(n << 2 | 3, node());
}
void push_down(int id){
if (tree[id].lazy != inf){
tree[id << 1].lazy = min(tree[id << 1].lazy, tree[id].lazy);
tree[id << 1 | 1].lazy = min(tree[id << 1 | 1].lazy, tree[id].lazy);
tree[id << 1].mn = min(tree[id << 1].mn, tree[id].lazy);
tree[id << 1 | 1].mn = min(tree[id << 1 | 1].mn, tree[id].lazy);
tree[id].lazy = inf;
}
}
void update(int id, int l, int r, int u, int v, int w){
if (l > v || r < u) return;
if (l >= u && r <= v){
tree[id].mn = min(tree[id].mn, w);
tree[id].lazy = min(tree[id].lazy, w);
return;
}
int mid = (l + r) >> 1;
push_down(id);
update(id << 1, l, mid, u, v, w);
update(id << 1 | 1, mid + 1, r, u, v, w);
tree[id].mn = min(tree[id << 1].mn, tree[id << 1 | 1].mn);
}
int get(int id, int l, int r, int pos){
if (l > pos || r < pos) return inf;
if (l == r) return tree[id].mn;
int mid = (l + r) >> 1;
push_down(id);
int get1 = get(id << 1, l, mid, pos);
int get2 = get(id << 1 | 1, mid + 1, r, pos);
return min(get1, get2);
}
void update(int l, int r, int val){
update(1, 1, n, l, r, val);
}
int get(int pos){
return get(1, 1, n, pos);
}
};
struct DSU{
int n;
vector <int> parent, sz;
DSU(int _n){
n = _n;
parent.assign(n + 5, 0);
sz.assign(n + 5, 0);
for (int i = 1; i <= n; i++){
sz[i] = 1;
parent[i] = i;
}
}
int find_parent(int u){
if (u == parent[u]) return u;
return parent[u] = find_parent(parent[u]);
}
bool Union(int x, int y){
x = find_parent(x);
y = find_parent(y);
if (x == y) return 0;
if (sz[x] < sz[y]) swap(x, y);
sz[x] += sz[y];
parent[y] = x;
return 1;
}
};
struct phtrnghia{
int x, y, w, id;
};
bool cmp(phtrnghia a, phtrnghia b){
return a.w < b.w;
}
int n, m, MST_weight = 0, timer_dfs = 0;
vector <int> g[maxn];
vector <phtrnghia> edges, tmp;
bool visited[maxn];
void kruskal(){
sort(tmp.begin(), tmp.end(), cmp);
DSU dsu(n);
int cnt = 0;
for (phtrnghia cur: tmp){
int x = cur.x;
int y = cur.y;
int w = cur.w;
int id = cur.id;
if (dsu.Union(x, y)){
visited[id] = 1;
cnt++;
g[x].push_back(y);
g[y].push_back(x);
MST_weight += w;
}
if (cnt == n-1) return;
}
}
int sz[maxn], bigC[maxn], parent[maxn], head[maxn], dep[maxn], op[maxn];
void pre_dfs(int u, int p){
sz[u] = 1;
dep[u] = dep[p] + 1;
parent[u] = p;
op[u] = ++timer_dfs;
for (int v: g[u]){
if (v == p) continue;
pre_dfs(v, u);
sz[u] += sz[v];
if (sz[bigC[u]] < sz[v]) bigC[u] = v;
}
}
void dfs(int u, int p, int top){
head[u] = top;
if (bigC[u]) dfs(bigC[u], u, top);
for (int v: g[u]){
if (v == p or v == bigC[u]) continue;
dfs(v, u, v);
}
}
segtree smt(maxn);
void hld_update(int u, int v, int w){
while (head[u] != head[v]){
if (dep[head[u]] < dep[head[v]]) swap(u, v);
smt.update(op[head[u]], op[u], w);
u = parent[head[u]];
}
if (dep[u] > dep[v]) swap(u, v);
if (op[u] + 1 <= op[v]) smt.update(op[u] + 1, op[v], w);
}
int hld_get(int u){
return smt.get(op[u]);
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
if (fopen(PhTrNghia".INP", "r")){
freopen(PhTrNghia".INP", "r", stdin);
freopen(PhTrNghia".OUT", "w", stdout);
}
cin >> n >> m;
for (int i = 1; i <= m; i++){
int x, y, w;
cin >> x >> y >> w;
edges.push_back({x, y, w, i});
tmp.push_back({x, y, w, i});
}
kruskal();
pre_dfs(1, 0);
dfs(1, 0, 1);
for (phtrnghia cur: edges){
int x = cur.x;
int y = cur.y;
int w = cur.w;
int id = cur.id;
if (!visited[id]) hld_update(x, y, w);
}
for (phtrnghia cur: edges){
int x = cur.x;
int y = cur.y;
int w = cur.w;
int id = cur.id;
if (dep[x] > dep[y]) swap(x, y);
int res;
if (visited[id]){
res = hld_get(y);
if (res == inf) res = -1;
if (res != -1) res = MST_weight - w + res;
} else res = MST_weight;
cout << res << endl;
}
return 0;
}
/*
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIE1BU0sobikgKDFMTCA8PCBuKQojZGVmaW5lIFBoVHJOZ2hpYSAiQ09MRFdBUiIKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4biA9IDJlNSArIDU7CmNvbnN0IGludCBpbmYgPSAxZTE4OwoKc3RydWN0IHNlZ3RyZWV7CiAgICBzdHJ1Y3Qgbm9kZXsKICAgICAgICBpbnQgbW4sIGxhenk7CiAgICAgICAgbm9kZSgpewogICAgICAgICAgICBtbiA9IGluZjsKICAgICAgICAgICAgbGF6eSA9IGluZjsKICAgICAgICB9CiAgICB9OwogICAgaW50IG47CiAgICB2ZWN0b3IgPG5vZGU+IHRyZWU7CiAgICAKICAgIHNlZ3RyZWUoaW50IF9uKXsKICAgICAgICBuID0gX247CiAgICAgICAgdHJlZS5hc3NpZ24obiA8PCAyIHwgMywgbm9kZSgpKTsKICAgIH0KICAgIAogICAgdm9pZCBwdXNoX2Rvd24oaW50IGlkKXsKICAgICAgICBpZiAodHJlZVtpZF0ubGF6eSAhPSBpbmYpewogICAgICAgICAgICB0cmVlW2lkIDw8IDFdLmxhenkgPSBtaW4odHJlZVtpZCA8PCAxXS5sYXp5LCB0cmVlW2lkXS5sYXp5KTsKICAgICAgICAgICAgdHJlZVtpZCA8PCAxIHwgMV0ubGF6eSA9IG1pbih0cmVlW2lkIDw8IDEgfCAxXS5sYXp5LCB0cmVlW2lkXS5sYXp5KTsKICAgICAgICAgICAgdHJlZVtpZCA8PCAxXS5tbiA9IG1pbih0cmVlW2lkIDw8IDFdLm1uLCB0cmVlW2lkXS5sYXp5KTsKICAgICAgICAgICAgdHJlZVtpZCA8PCAxIHwgMV0ubW4gPSBtaW4odHJlZVtpZCA8PCAxIHwgMV0ubW4sIHRyZWVbaWRdLmxhenkpOwogICAgICAgICAgICB0cmVlW2lkXS5sYXp5ID0gaW5mOwogICAgICAgIH0KICAgIH0KICAgIAogICAgdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IHcpewogICAgICAgIGlmIChsID4gdiB8fCByIDwgdSkgcmV0dXJuOwogICAgICAgIGlmIChsID49IHUgJiYgciA8PSB2KXsKICAgICAgICAgICAgdHJlZVtpZF0ubW4gPSBtaW4odHJlZVtpZF0ubW4sIHcpOwogICAgICAgICAgICB0cmVlW2lkXS5sYXp5ID0gbWluKHRyZWVbaWRdLmxhenksIHcpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGludCBtaWQgPSAobCArIHIpID4+IDE7CiAgICAgICAgcHVzaF9kb3duKGlkKTsKICAgICAgICB1cGRhdGUoaWQgPDwgMSwgbCwgbWlkLCB1LCB2LCB3KTsKICAgICAgICB1cGRhdGUoaWQgPDwgMSB8IDEsIG1pZCArIDEsIHIsIHUsIHYsIHcpOwogICAgICAgIHRyZWVbaWRdLm1uID0gbWluKHRyZWVbaWQgPDwgMV0ubW4sIHRyZWVbaWQgPDwgMSB8IDFdLm1uKTsKICAgIH0KICAgIAogICAgaW50IGdldChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHBvcyl7CiAgICAgICAgaWYgKGwgPiBwb3MgfHwgciA8IHBvcykgcmV0dXJuIGluZjsKICAgICAgICBpZiAobCA9PSByKSByZXR1cm4gdHJlZVtpZF0ubW47CiAgICAgICAgaW50IG1pZCA9IChsICsgcikgPj4gMTsKICAgICAgICBwdXNoX2Rvd24oaWQpOwogICAgICAgIGludCBnZXQxID0gZ2V0KGlkIDw8IDEsIGwsIG1pZCwgcG9zKTsKICAgICAgICBpbnQgZ2V0MiA9IGdldChpZCA8PCAxIHwgMSwgbWlkICsgMSwgciwgcG9zKTsKICAgICAgICByZXR1cm4gbWluKGdldDEsIGdldDIpOwogICAgfQogICAgCiAgICB2b2lkIHVwZGF0ZShpbnQgbCwgaW50IHIsIGludCB2YWwpewogICAgICAgIHVwZGF0ZSgxLCAxLCBuLCBsLCByLCB2YWwpOwogICAgfQogICAgCiAgICBpbnQgZ2V0KGludCBwb3MpewogICAgICAgIHJldHVybiBnZXQoMSwgMSwgbiwgcG9zKTsKICAgIH0KfTsKCnN0cnVjdCBEU1V7CiAgICBpbnQgbjsKICAgIHZlY3RvciA8aW50PiBwYXJlbnQsIHN6OwogICAgRFNVKGludCBfbil7CiAgICAgICAgbiA9IF9uOwogICAgICAgIHBhcmVudC5hc3NpZ24obiArIDUsIDApOwogICAgICAgIHN6LmFzc2lnbihuICsgNSwgMCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICAgICAgc3pbaV0gPSAxOwogICAgICAgICAgICBwYXJlbnRbaV0gPSBpOwogICAgICAgIH0KICAgIH0KCiAgICBpbnQgZmluZF9wYXJlbnQoaW50IHUpewogICAgICAgIGlmICh1ID09IHBhcmVudFt1XSkgcmV0dXJuIHU7CiAgICAgICAgcmV0dXJuIHBhcmVudFt1XSA9IGZpbmRfcGFyZW50KHBhcmVudFt1XSk7CiAgICB9CgogICAgYm9vbCBVbmlvbihpbnQgeCwgaW50IHkpewogICAgICAgIHggPSBmaW5kX3BhcmVudCh4KTsKICAgICAgICB5ID0gZmluZF9wYXJlbnQoeSk7CiAgICAgICAgaWYgKHggPT0geSkgcmV0dXJuIDA7CiAgICAgICAgaWYgKHN6W3hdIDwgc3pbeV0pIHN3YXAoeCwgeSk7CiAgICAgICAgc3pbeF0gKz0gc3pbeV07CiAgICAgICAgcGFyZW50W3ldID0geDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KfTsKCnN0cnVjdCBwaHRybmdoaWF7CiAgICBpbnQgeCwgeSwgdywgaWQ7Cn07Cgpib29sIGNtcChwaHRybmdoaWEgYSwgcGh0cm5naGlhIGIpewogICAgcmV0dXJuIGEudyA8IGIudzsKfQoKaW50IG4sIG0sIE1TVF93ZWlnaHQgPSAwLCB0aW1lcl9kZnMgPSAwOwp2ZWN0b3IgPGludD4gZ1ttYXhuXTsKdmVjdG9yIDxwaHRybmdoaWE+IGVkZ2VzLCB0bXA7CmJvb2wgdmlzaXRlZFttYXhuXTsKCnZvaWQga3J1c2thbCgpewogICAgc29ydCh0bXAuYmVnaW4oKSwgdG1wLmVuZCgpLCBjbXApOwogICAgRFNVIGRzdShuKTsKICAgIGludCBjbnQgPSAwOwogICAgZm9yIChwaHRybmdoaWEgY3VyOiB0bXApewogICAgICAgIGludCB4ID0gY3VyLng7CiAgICAgICAgaW50IHkgPSBjdXIueTsKICAgICAgICBpbnQgdyA9IGN1ci53OwogICAgICAgIGludCBpZCA9IGN1ci5pZDsKICAgICAgICBpZiAoZHN1LlVuaW9uKHgsIHkpKXsKICAgICAgICAgICAgdmlzaXRlZFtpZF0gPSAxOwogICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgZ1t4XS5wdXNoX2JhY2soeSk7CiAgICAgICAgICAgIGdbeV0ucHVzaF9iYWNrKHgpOwogICAgICAgICAgICBNU1Rfd2VpZ2h0ICs9IHc7CiAgICAgICAgfQogICAgICAgIGlmIChjbnQgPT0gbi0xKSByZXR1cm47CiAgICB9Cn0KCmludCBzelttYXhuXSwgYmlnQ1ttYXhuXSwgcGFyZW50W21heG5dLCBoZWFkW21heG5dLCBkZXBbbWF4bl0sIG9wW21heG5dOwoKdm9pZCBwcmVfZGZzKGludCB1LCBpbnQgcCl7CiAgICBzelt1XSA9IDE7CiAgICBkZXBbdV0gPSBkZXBbcF0gKyAxOwogICAgcGFyZW50W3VdID0gcDsKICAgIG9wW3VdID0gKyt0aW1lcl9kZnM7CiAgICBmb3IgKGludCB2OiBnW3VdKXsKICAgICAgICBpZiAodiA9PSBwKSBjb250aW51ZTsKICAgICAgICBwcmVfZGZzKHYsIHUpOwogICAgICAgIHN6W3VdICs9IHN6W3ZdOwogICAgICAgIGlmIChzeltiaWdDW3VdXSA8IHN6W3ZdKSBiaWdDW3VdID0gdjsKICAgIH0KfQoKdm9pZCBkZnMoaW50IHUsIGludCBwLCBpbnQgdG9wKXsKICAgIGhlYWRbdV0gPSB0b3A7CiAgICAKICAgIGlmIChiaWdDW3VdKSBkZnMoYmlnQ1t1XSwgdSwgdG9wKTsKICAgIAogICAgZm9yIChpbnQgdjogZ1t1XSl7CiAgICAgICAgaWYgKHYgPT0gcCBvciB2ID09IGJpZ0NbdV0pIGNvbnRpbnVlOwogICAgICAgIGRmcyh2LCB1LCB2KTsKICAgIH0KfQoKc2VndHJlZSBzbXQobWF4bik7Cgp2b2lkIGhsZF91cGRhdGUoaW50IHUsIGludCB2LCBpbnQgdyl7CiAgICB3aGlsZSAoaGVhZFt1XSAhPSBoZWFkW3ZdKXsKICAgICAgICBpZiAoZGVwW2hlYWRbdV1dIDwgZGVwW2hlYWRbdl1dKSBzd2FwKHUsIHYpOwogICAgICAgIHNtdC51cGRhdGUob3BbaGVhZFt1XV0sIG9wW3VdLCB3KTsKICAgICAgICB1ID0gcGFyZW50W2hlYWRbdV1dOwogICAgfQogICAgaWYgKGRlcFt1XSA+IGRlcFt2XSkgc3dhcCh1LCB2KTsKICAgIGlmIChvcFt1XSArIDEgPD0gb3Bbdl0pIHNtdC51cGRhdGUob3BbdV0gKyAxLCBvcFt2XSwgdyk7Cn0KCmludCBobGRfZ2V0KGludCB1KXsKICAgIHJldHVybiBzbXQuZ2V0KG9wW3VdKTsKfQoKc2lnbmVkIG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oUGhUck5naGlhIi5JTlAiLCAiciIpKXsKICAgICAgICBmcmVvcGVuKFBoVHJOZ2hpYSIuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihQaFRyTmdoaWEiLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIAogICAgY2luID4+IG4gPj4gbTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKyl7CiAgICAgICAgaW50IHgsIHksIHc7CiAgICAgICAgY2luID4+IHggPj4geSA+PiB3OwogICAgICAgIGVkZ2VzLnB1c2hfYmFjayh7eCwgeSwgdywgaX0pOwogICAgICAgIHRtcC5wdXNoX2JhY2soe3gsIHksIHcsIGl9KTsKICAgIH0KICAgIAogICAga3J1c2thbCgpOwogICAgcHJlX2RmcygxLCAwKTsKICAgIGRmcygxLCAwLCAxKTsKICAgIAogICAgZm9yIChwaHRybmdoaWEgY3VyOiBlZGdlcyl7CiAgICAgICAgaW50IHggPSBjdXIueDsKICAgICAgICBpbnQgeSA9IGN1ci55OwogICAgICAgIGludCB3ID0gY3VyLnc7CiAgICAgICAgaW50IGlkID0gY3VyLmlkOwogICAgICAgIGlmICghdmlzaXRlZFtpZF0pIGhsZF91cGRhdGUoeCwgeSwgdyk7CiAgICB9CiAgICAKICAgIGZvciAocGh0cm5naGlhIGN1cjogZWRnZXMpewogICAgICAgIGludCB4ID0gY3VyLng7CiAgICAgICAgaW50IHkgPSBjdXIueTsKICAgICAgICBpbnQgdyA9IGN1ci53OwogICAgICAgIGludCBpZCA9IGN1ci5pZDsKICAgICAgICBpZiAoZGVwW3hdID4gZGVwW3ldKSBzd2FwKHgsIHkpOwogICAgICAgIGludCByZXM7CiAgICAgICAgaWYgKHZpc2l0ZWRbaWRdKXsKICAgICAgICAgICAgcmVzID0gaGxkX2dldCh5KTsKICAgICAgICAgICAgaWYgKHJlcyA9PSBpbmYpIHJlcyA9IC0xOyAKICAgICAgICAgICAgaWYgKHJlcyAhPSAtMSkgcmVzID0gTVNUX3dlaWdodCAtIHcgKyByZXM7CiAgICAgICAgfSBlbHNlIHJlcyA9IE1TVF93ZWlnaHQ7CiAgICAgICAgY291dCA8PCByZXMgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Ci8qCgoqLw==