#include <bits/stdc++.h>
using namespace std;
const int ms = 2e5 + 5, mlg = 21;
int ds[ms], sz[ms];
vector<pair<long long, pair<int, int>>> ed;
vector<pair<int, long long>> g[ms];
int par[ms][mlg + 1], lvl[ms];
long long maior[ms][mlg + 1];
int n, m;
long long best;
int find(int i) {
  while (ds[i] != i) {
    ds[i] = ds[ds[i]];
    i = ds[i];
  }
  return i;
}
void dsunion(int a, int b) {
  a = find(a);
  b = find(b);
  if (sz[a] < sz[b]) swap(a, b);
  sz[a] += sz[b];
  ds[b] = a;
}
void kruskall() {
  vector<pair<long long, pair<int, int>>> e = ed;
  sort(e.begin(), e.end());
  for (int i = 0; i < m; ++i) {
    int w = e[i].first, u = e[i].second.first, v = e[i].second.second;
    if (find(u) != find(v)) {
      dsunion(u, v);
      g[u].push_back({v, w});
      g[v].push_back({u, w});
      best += w;
    }
  }
}
void dfs(int v, int p, int l = 0) {
  lvl[v] = l;
  par[v][0] = p;
  for (int k = 1; k <= mlg; ++k) {
    maior[v][k] = max(maior[par[v][k - 1]][k - 1], maior[v][k - 1]);
    par[v][k] = par[par[v][k - 1]][k - 1];
  }
  for (auto u : g[v]) {
    if (u.first != p) {
      maior[u.first][0] = u.second;
      dfs(u.first, v, l + 1);
    }
  }
}
int lca(int a, int b) {
  long long melhor = -1;
  if (lvl[b] > lvl[a]) swap(a, b);
  for (int i = mlg; i >= 0; --i) {
    if (lvl[a] - (1 << i) >= lvl[b]) {
      melhor = max(melhor, maior[a][i]);
      a = par[a][i];
    }
  }
  if (a == b) return melhor;
  for (int i = mlg; i >= 0; --i) {
    if (par[a][i] != par[b][i]) {
      melhor = max(melhor, max(maior[a][i], maior[b][i]));
      a = par[a][i];
      b = par[b][i];
    }
  }
  melhor = max(melhor, max(maior[a][0], maior[b][0]));
  return melhor;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> m;
  for (int i = 0; i < n; ++i) {
    ds[i] = i;
    sz[i] = 1;
  }
  for (int i = 0; i < m; ++i) {
    int w, u, v;
    cin >> u >> v >> w;
    u--;
    v--;
    ed.push_back({w, {u, v}});
  }
  kruskall();
  maior[0][0] = 0;
  dfs(0, 0);
  for (int i = 0; i < m; ++i) {
    int kp = lca(ed[i].second.first, ed[i].second.second);
    cout << best - kp + ed[i].first << '\n';
  }
  return 0;
}
