#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bellmanford.in");
ofstream fout("bellmanford.out");
vector<pair<int, int>>graf[50001];
vector <int> distanta;
vector <int> loop;
vector <bool> viz;
queue <int> coada;
int n,m;
int BFord(int s)
{
int nod;
bool ok=0;
distanta[s]=0;
viz[s]=1;
coada.push(s);
while(!coada.empty() && !ok)
{
nod = coada.front();
coada.pop();
viz[nod] = 0;
for(int i=0; i<graf[nod].size(); i++)
{
int vecin=graf[nod][i].first;
int cost=graf[nod][i].second;
if( distanta[nod] + cost < distanta[vecin])
{
distanta[vecin]=distanta[nod] + cost;
if(!viz[vecin])
{
coada.push(vecin);
viz[vecin]=1;
}
loop[vecin]++;
if(loop[vecin]>= n)
{
ok=1;
break;
}
}
}
}
return ok;
}
int main()
{
int x,y,c;
fin>>n>>m;
for(int i=0; i<m; i++)
{
fin>>x>>y>>c;
graf[x].push_back(make_pair(y,c));
}
for(int i=1; i<=n+1; i++)
{
distanta.push_back(INT_MAX);
loop.push_back(0);
viz.push_back(0);
}
if( BFord(1)!=0)
fout<<"Ciclu negativ!";
else
{
for(int i=2; i<= n; i++)
fout<<distanta[i]<<" ";
}
return 0;
}