#include<stdio.h>
#include<stdlib.h>
int edgeA[10001];
int edgeB[10001];
int val[10001];
int d[101];
void relax(int u, int v, int w){
if(d[u]==-1) return;
else if(d[v]==-1) d[v]=d[u]+w;
else d[v] = d[v]>d[u]+w?d[u]+w:d[v];
}
int main(){
int n,k,i,j;
scanf("%d %d",&n,&k);
for(i=1;i<=k;i++)
scanf("%d %d %d",edgeA+i,edgeB+i,val+i);
for(i=2;i<=n;i++)
d[i]=-1;
d[1]=0;
for(i=1;i<n;i++)
for(j=1;j<=k;j++)
relax(edgeA[j],edgeB[j],val[j]);
int lastResult = d[n];
for(j=1;j<=k;j++)
printf("%d ",d[j]);
if(lastResult == -1) printf("-1\n");
else if(lastResult != d[n]) printf("0\n");
else printf("%d\n",lastResult);
return 0;
}