#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second
#define nn '\n'
#define pi pair<ll,ll>
#define unmp unordered_map
#define uns unordered_set
ll mod = 1e9+7;
const int N = 2*1e5 + 5 ;
int bit[200000];
int n, m;
vector<pair<int, int>> adj[N];
const int INF = 1e9;
void nhap(){
cin >> n >> m;
for( int i = 1 ; i <= m; i++){
int x, y , w;
cin >> x >> y >> w;
adj[x].push_back({y, w});
}
}
void dijkstra(int s){
s = 1;
vector<ll> d(n + 1, INF);
d[1] = 0;
priority_queue<pair<int, int>, vector<pair<int, int>> , greater<pair<int,int>>> q;
q.push({0, s});
while(!q.empty()){
pair<int, int> top = q.top(); q.pop();
int u = top.second;
int kc = top.first;
if(kc > d[u]) continue;
for( auto it : adj[u]){
int v = it.first;
int w = it.second;
d[v] = max(d[v], d[u] + w);
q.push({d[v], v});
}
}
for( int i =1; i<= n ;i++){
cout << d[i] << " ";
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
nhap();
dijkstra(1);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgbm4gJ1xuJwojZGVmaW5lIHBpIHBhaXI8bGwsbGw+CiNkZWZpbmUgdW5tcCB1bm9yZGVyZWRfbWFwCiNkZWZpbmUgdW5zIHVub3JkZXJlZF9zZXQKbGwgbW9kID0gMWU5Kzc7CmNvbnN0IGludCBOID0gMioxZTUgKyA1IDsKaW50IGJpdFsyMDAwMDBdOwppbnQgbiwgbTsKdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBhZGpbTl07CmNvbnN0IGludCBJTkYgPSAxZTk7CnZvaWQgbmhhcCgpewogICAgY2luID4+IG4gPj4gbTsKICAgIGZvciggaW50IGkgPSAxIDsgaSA8PSBtOyBpKyspewogICAgICAgIGludCB4LCB5ICwgdzsKICAgICAgICBjaW4gPj4geCA+PiB5ID4+IHc7CiAgICAgICAgYWRqW3hdLnB1c2hfYmFjayh7eSwgd30pOwogICAgfQp9CnZvaWQgZGlqa3N0cmEoaW50IHMpewogICAgcyA9IDE7CiAgICB2ZWN0b3I8bGw+IGQobiArIDEsIElORik7CiAgICBkWzFdID0gMDsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8aW50LCBpbnQ+LCB2ZWN0b3I8cGFpcjxpbnQsIGludD4+ICwgZ3JlYXRlcjxwYWlyPGludCxpbnQ+Pj4gcTsKICAgIHEucHVzaCh7MCwgc30pOwogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgcGFpcjxpbnQsIGludD4gdG9wID0gcS50b3AoKTsgcS5wb3AoKTsKICAgICAgICBpbnQgIHUgPSB0b3Auc2Vjb25kOwogICAgICAgIGludCBrYyA9IHRvcC5maXJzdDsKICAgICAgICBpZihrYyA+IGRbdV0pIGNvbnRpbnVlOwoKICAgICAgICBmb3IoIGF1dG8gaXQgOiBhZGpbdV0pewogICAgICAgICAgICBpbnQgdiA9IGl0LmZpcnN0OwogICAgICAgICAgICBpbnQgdyA9IGl0LnNlY29uZDsKICAgICAgICAgICAgZFt2XSA9IG1heChkW3ZdLCBkW3VdICsgdyk7CiAgICAgICAgICAgIHEucHVzaCh7ZFt2XSwgdn0pOwogICAgICAgIH0KICAgIH0KICAgIGZvciggaW50IGkgPTE7IGk8PSBuIDtpKyspewogICAgICAgIGNvdXQgPDwgZFtpXSA8PCAiICI7CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBuaGFwKCk7CiAgICBkaWprc3RyYSgxKTsKICAgIHJldHVybiAwOwp9Cg==