// ROOT : DRAGON3012009
#include <bits/stdc++.h>
#define ll int
#define el "\n"
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define __ROOT__ int main()
#pragma GCC optimize("O2")
#pragma GCC target("avx,avx2,fma")
#define fi first
#define se second
#define M 1000000007
#define MAXN 1001
#define GIOIHAN 1000001
#define BLOCK_SIZE 425
#define MAX_NODE 1001001
#define LOG 19
#define ALPHA_SIZE 26
#define BASE 311
#define NAME "file"
#define INF 1e8
#define compare(v) sort((v).begin(), (v).end()); (v).erase(unique((v).begin(), (v).end()), (v).end()); // dùng để nén sort mảng compare
using namespace std;
const ll MOD[] = {(ll)1e9 + 2277, (ll)1e9 + 5277, (ll)1e9 + 8277, (ll)1e9 + 9277, (ll) 1e9 + 7 };
const ll NMOD = 1;
const int dx[] = {-1, 0, 1,0};
const int dy[] = {0, 1, 0, -1};
//**Variable**//
ll n, m ;
ll d1[MAXN] ;
vector<pair<ll,ll > >adj[MAXN] ;
//**Struct**//
//**Function**//
void resett() {
for(ll i = 1 ; i <= n ; i++ ) adj[i].resize(0);
}
void init() {
cin>>n>> m ;
for(ll i = 1 ; i <= m ; i ++ ) {
ll x, y, w;
cin>>x>> y>> w;
adj[x].push_back({y, w }) ;
}
}
ll dijkstra(ll st, ll d[] ) {
for(ll i = 0 ; i <= n ; i ++ ) d[i] = INF ;
priority_queue<pair<ll,ll>,vector<pair<ll,ll>>, greater<pair<ll,ll> > > pq ;
for(pair<ll,ll> v : adj[st]){
if(d[v.fi] > v.se ) pq.push({d[v.fi] = v.se , v.fi }) ;
}
while(!pq.empty()) {
pair<ll,ll> u = pq.top() ;
pq.pop() ;
if(d[u.se] < u.fi) continue ;
if(u.se == st ) return d[u.se] ;
for(pair<ll,ll> v : adj[u.se]) {
if(d[v.fi] > d[u.se] + v.se ) {
pq.push({d[v.fi] = d[u.se] + v.se, v.fi }) ;
}
}
}
return -1 ;
}
void solve() {
for(ll i = 1 ; i <= n ; i ++ )cout<< dijkstra(i, d1) <<el ;
}
__ROOT__ {
// freopen(NAME".inp" , "r" , stdin);
// freopen(NAME".out" , "w", stdout) ;
fast;
ll t;
cin >> t;
while(t-- ) {
init();
solve();
resett() ;
}
}
Ly8gUk9PVCA6IERSQUdPTjMwMTIwMDkKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgaW50CiNkZWZpbmUgZWwgIlxuIgojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiNkZWZpbmUgX19ST09UX18gaW50IG1haW4oKQojcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzIiKQojcHJhZ21hIEdDQyB0YXJnZXQoImF2eCxhdngyLGZtYSIpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNIDEwMDAwMDAwMDcKI2RlZmluZSBNQVhOIDEwMDEKI2RlZmluZSBHSU9JSEFOIDEwMDAwMDEKI2RlZmluZSBCTE9DS19TSVpFIDQyNQojZGVmaW5lIE1BWF9OT0RFIDEwMDEwMDEKI2RlZmluZSBMT0cgMTkKI2RlZmluZSBBTFBIQV9TSVpFIDI2CiNkZWZpbmUgQkFTRSAzMTEKI2RlZmluZSBOQU1FICJmaWxlIgojZGVmaW5lIElORiAxZTgKI2RlZmluZSBjb21wYXJlKHYpIHNvcnQoKHYpLmJlZ2luKCksICh2KS5lbmQoKSk7ICh2KS5lcmFzZSh1bmlxdWUoKHYpLmJlZ2luKCksICh2KS5lbmQoKSksICh2KS5lbmQoKSk7IC8vIGTDuW5nIMSR4buDIG7DqW4gc29ydCBt4bqjbmcgY29tcGFyZQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBNT0RbXSA9IHsobGwpMWU5ICsgMjI3NywgKGxsKTFlOSArIDUyNzcsIChsbCkxZTkgKyA4Mjc3LCAobGwpMWU5ICsgOTI3NywgKGxsKSAxZTkgKyA3IH07CmNvbnN0IGxsIE5NT0QgPSAxOwpjb25zdCBpbnQgZHhbXSA9IHstMSwgMCwgMSwwfTsKY29uc3QgaW50IGR5W10gPSB7MCwgMSwgMCwgLTF9OwovLyoqVmFyaWFibGUqKi8vCmxsIG4sICBtICAgOwpsbCBkMVtNQVhOXSA7CnZlY3RvcjxwYWlyPGxsLGxsID4gPmFkaltNQVhOXSA7Ci8vKipTdHJ1Y3QqKi8vCgovLyoqRnVuY3Rpb24qKi8vCnZvaWQgcmVzZXR0KCkgewoKICAgIGZvcihsbCBpID0gMSA7IGkgPD0gbiAgOyBpKysgKSBhZGpbaV0ucmVzaXplKDApOwp9CnZvaWQgaW5pdCgpIHsKICAgIGNpbj4+bj4+IG0gOwogICAgZm9yKGxsIGkgPSAxIDsgaSA8PSBtIDsgaSArKyApIHsKICAgICAgICBsbCB4LCB5LCB3OwogICAgICAgIGNpbj4+eD4+IHk+PiB3OwogICAgICAgIGFkalt4XS5wdXNoX2JhY2soe3ksIHcgfSkgOwogICAgfQp9CmxsIGRpamtzdHJhKGxsIHN0LCBsbCBkW10gKSB7CiAgICBmb3IobGwgaSA9IDAgOyBpIDw9IG4gIDsgaSArKyApIGRbaV0gPSBJTkYgIDsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsbGw+LHZlY3RvcjxwYWlyPGxsLGxsPj4sIGdyZWF0ZXI8cGFpcjxsbCxsbD4gPiA+IHBxIDsKICAgIGZvcihwYWlyPGxsLGxsPiAgdiA6IGFkaltzdF0pewogICBpZihkW3YuZmldID4gdi5zZSApICAgICBwcS5wdXNoKHtkW3YuZmldID0gdi5zZSAsIHYuZmkgICB9KSA7CiAgICB9CiAgICB3aGlsZSghcHEuZW1wdHkoKSkgewogICAgICAgIHBhaXI8bGwsbGw+IHUgPSBwcS50b3AoKSAgOwogICAgICAgIHBxLnBvcCgpIDsKICAgICAgICBpZihkW3Uuc2VdIDwgdS5maSkgY29udGludWUgOwogICAgICAgIGlmKHUuc2UgID09IHN0ICkgcmV0dXJuIGRbdS5zZV0gOwogICAgICAgIGZvcihwYWlyPGxsLGxsPiAgdiA6IGFkalt1LnNlXSkgewogICAgICAgICAgICBpZihkW3YuZmldID4gZFt1LnNlXSArIHYuc2UgKSB7CiAgICAgICAgICAgICAgICBwcS5wdXNoKHtkW3YuZmldID0gZFt1LnNlXSArIHYuc2UsIHYuZmkgfSkgOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIC0xIDsKfQp2b2lkIHNvbHZlKCkgewogICAgZm9yKGxsIGkgPSAxIDsgaSA8PSBuIDsgaSArKyApY291dDw8IGRpamtzdHJhKGksICBkMSkgPDxlbCA7Cgp9CgpfX1JPT1RfXyB7Ci8vICAgICBmcmVvcGVuKE5BTUUiLmlucCIgLCAiciIgLCBzdGRpbik7Ci8vICAgICBmcmVvcGVuKE5BTUUiLm91dCIgLCAidyIsIHN0ZG91dCkgOwogICAgZmFzdDsKICAgIGxsIHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSAgKSB7CiAgICAgICAgaW5pdCgpOwogICAgICAgIHNvbHZlKCk7CiAgICAgICAgcmVzZXR0KCkgOwogICAgfQp9Cg==