#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void mincammino(int N, int M, vector<int> X, vector<int> Y, vector<int> P, vector<long long>& D) {
    vector<vector<pair<int, ll>>> adj(N);
    for(int i = 0; i<M; i++){
        adj[X[i]].push_back({Y[i], P[i]});
    }
    vector<bool> vis(N,0);
    for(auto&a:D)a = -1;
    D[0] = 0;
    priority_queue<pair<ll,int>> pq;
    pq.push({0,0});
    while(!pq.empty()){
        auto [d, v] = pq.top();
        pq.pop();
        if(vis[v])continue;
        vis[v] = 1;
        D[v] = -d;
        for(auto& [u, dd] : adj[v]){
            if(!vis[u]){
                pq.push({d-dd, u});
            }
        }
    }
    return;
}

/*int main() {
    int N, M;
    cin >> N >> M;

    vector<int> X(M), Y(M), P(M);
    vector<long long> D(N);

    for (int i = 0; i < M; i++) {
        cin >> X[i] >> Y[i] >> P[i];
    }

    mincammino(N, M, X, Y, P, D);

    for (int i = 0; i < N; i++) {
        cout << D[i] << ' ';
    }
    cout << '\n';
}*/