#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define db double
#define is insert
#define pb push_back
#define pii pair<int, int>
#define pll pair<long long, long long>
#define X first
#define Y second
#define vi vector<int>
#define vpi vector<pair<int, int>>
#define msi multiset<int>
#define int long long
const int m97 = (int)1e9+7;
const int N = 500005;
const int inf = (int)1e18;
struct edge{
int u, v, w;
};
int n=0, m, c[N], ps[N], id;
vpi adj[N];
vi d;
vector<edge> e, mst;
bool used[N];
bool cmp(edge a, edge b){
return a.w<b.w;
}
void build(int n){
for(int i=1; i<=n; i++) ps[i] = -1;
}
int find(int i){
return (ps[i]<0)?i:(ps[i]=find(ps[i]));
}
bool same(int i, int j){
return find(i)==find(j);
}
void join(int i, int j){
i=find(i), j=find(j);
if(i==j) return;
if(ps[i]<ps[j]){
ps[i]+=ps[j];
ps[j]=i;
}
else{
ps[j]+=ps[i];
ps[i]=j;
}
}
void reset(){
for(int i=0; i<N; i++){
adj[i].clear();
}
e.clear();
mst.clear();
d.clear();
memset(c, 0, sizeof(c));
memset(used, 0, sizeof(used));
memset(ps, -1, sizeof(ps));
}
void dfs(int u){
used[u] = 1;
for(pii p : adj[u]){
int v = p.X;
int w = p.Y;
if(!used[v]){
d.pb(c[v] - w);
dfs(v);
}
}
}
void korutcan(){
sort(e.begin(), e.end(), cmp);
for(edge x : e){
if(same(x.u, x.v)) continue;
join(x.u, x.v);
mst.pb(x);
adj[x.u].pb({x.v, x.w});
adj[x.v].pb({x.u, x.w});
}
}
void solve(){
cin >> n >> m;
int mn = inf;
for(int i=1; i<=n; i++){
cin >> c[i];
if(mn > c[i]){
id = i;
mn = c[i];
}
}
int res = mn;
build(n);
int u, v, w;
for(int i=1; i<=m; i++){
cin >> u >> v >> w;
e.pb({u, v, w});
}
korutcan();
for(edge x : mst){
res+= x.w;
}
cout << res << " ";
dfs(id);
sort(d.begin(), d.end());
for(int v : d){
res += v;
cout << res << " ";
}
cout << "\n";
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
// freopen("input.tt", "r", stdin);
// freopen("test.tt", "w", stdout);
int _ = 1; cin >> _;
while(_--){
reset();
solve();
}
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPMyIpCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIGlzIGluc2VydAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHBsbCBwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPgojZGVmaW5lIFggZmlyc3QKI2RlZmluZSBZIHNlY29uZAojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdnBpIHZlY3RvcjxwYWlyPGludCwgaW50Pj4KI2RlZmluZSBtc2kgbXVsdGlzZXQ8aW50PgojZGVmaW5lIGludCBsb25nIGxvbmcKY29uc3QgaW50IG05NyA9IChpbnQpMWU5Kzc7CmNvbnN0IGludCBOID0gNTAwMDA1Owpjb25zdCBpbnQgaW5mID0gKGludCkxZTE4OwoKc3RydWN0IGVkZ2V7CglpbnQgdSwgdiwgdzsKfTsKCmludCBuPTAsIG0sIGNbTl0sIHBzW05dLCBpZDsKdnBpIGFkaltOXTsKdmkgZDsKdmVjdG9yPGVkZ2U+IGUsIG1zdDsKYm9vbCB1c2VkW05dOwoKYm9vbCBjbXAoZWRnZSBhLCBlZGdlIGIpewoJcmV0dXJuIGEudzxiLnc7Cn0KCnZvaWQgYnVpbGQoaW50IG4peyAKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIHBzW2ldID0gLTE7IAp9CgppbnQgZmluZChpbnQgaSl7IAogICAgcmV0dXJuIChwc1tpXTwwKT9pOihwc1tpXT1maW5kKHBzW2ldKSk7IAp9Cgpib29sIHNhbWUoaW50IGksIGludCBqKXsKCXJldHVybiBmaW5kKGkpPT1maW5kKGopOwp9Cgp2b2lkIGpvaW4oaW50IGksIGludCBqKXsKCWk9ZmluZChpKSwgaj1maW5kKGopOwoJaWYoaT09aikgcmV0dXJuOwoJaWYocHNbaV08cHNbal0pewoJCXBzW2ldKz1wc1tqXTsKCQlwc1tqXT1pOwoJfQoJZWxzZXsKCQlwc1tqXSs9cHNbaV07CgkJcHNbaV09ajsKCX0KfQoKdm9pZCByZXNldCgpewoJZm9yKGludCBpPTA7IGk8TjsgaSsrKXsKCQlhZGpbaV0uY2xlYXIoKTsKCX0KCWUuY2xlYXIoKTsKCW1zdC5jbGVhcigpOwoJZC5jbGVhcigpOwoJbWVtc2V0KGMsIDAsIHNpemVvZihjKSk7CgltZW1zZXQodXNlZCwgMCwgc2l6ZW9mKHVzZWQpKTsKCW1lbXNldChwcywgLTEsIHNpemVvZihwcykpOwp9Cgp2b2lkIGRmcyhpbnQgdSl7Cgl1c2VkW3VdID0gMTsKCWZvcihwaWkgcCA6IGFkalt1XSl7CgkJaW50IHYgPSBwLlg7CgkJaW50IHcgPSBwLlk7CgkJaWYoIXVzZWRbdl0pewoJCQlkLnBiKGNbdl0gLSB3KTsKCQkJZGZzKHYpOwoJCX0KCX0KfQoKdm9pZCBrb3J1dGNhbigpewoJc29ydChlLmJlZ2luKCksIGUuZW5kKCksIGNtcCk7Cglmb3IoZWRnZSB4IDogZSl7CgkJaWYoc2FtZSh4LnUsIHgudikpIGNvbnRpbnVlOwoJCWpvaW4oeC51LCB4LnYpOwoJCW1zdC5wYih4KTsKCQlhZGpbeC51XS5wYih7eC52LCB4Lnd9KTsKCQlhZGpbeC52XS5wYih7eC51LCB4Lnd9KTsKCX0KfQoKdm9pZCBzb2x2ZSgpewoJY2luID4+IG4gPj4gbTsKCWludCBtbiA9IGluZjsKCWZvcihpbnQgaT0xOyBpPD1uOyBpKyspewoJCWNpbiA+PiBjW2ldOwoJCWlmKG1uID4gY1tpXSl7CgkJCWlkID0gaTsKCQkJbW4gPSBjW2ldOwoJCX0KCX0KCWludCByZXMgPSBtbjsKCWJ1aWxkKG4pOwoJaW50IHUsIHYsIHc7Cglmb3IoaW50IGk9MTsgaTw9bTsgaSsrKXsKCQljaW4gPj4gdSA+PiB2ID4+IHc7CgkJZS5wYih7dSwgdiwgd30pOwoJfQoJa29ydXRjYW4oKTsKCWZvcihlZGdlIHggOiBtc3QpewoJCXJlcys9IHgudzsKCX0KCWNvdXQgPDwgcmVzIDw8ICIgIjsKCWRmcyhpZCk7Cglzb3J0KGQuYmVnaW4oKSwgZC5lbmQoKSk7Cglmb3IoaW50IHYgOiBkKXsKCQlyZXMgKz0gdjsKCQljb3V0IDw8IHJlcyA8PCAiICI7Cgl9Cgljb3V0IDw8ICJcbiI7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwovLyAgICBmcmVvcGVuKCJpbnB1dC50dCIsICJyIiwgc3RkaW4pOwovLyAgICBmcmVvcGVuKCJ0ZXN0LnR0IiwgInciLCBzdGRvdXQpOwoJaW50IF8gPSAxOyBjaW4gPj4gXzsKCXdoaWxlKF8tLSl7CgkJcmVzZXQoKTsKCQlzb2x2ZSgpOwoJfQp9