#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
int n,m;
bool book[105];
int ma[105][105];
int dis[105];
int main(){
memset(book,0,sizeof(book));
memset(ma,inf,sizeof(ma));
int temp;
cin>>n>>m;// n 边 m 顶点
int x,y,v;
for(int i=1;i<=n;i++){
cin>>x>>y>>v;
ma[x][y]=v;
//ma[y][x]=v;
}
for(int i=1;i<m;i++){
for(int j=1;j<=m;j++){
if(i==j) ma[i][j]=0;
}
}
for(int i=1;i<=m;i++){
dis[i]=ma[1][i];
}
book[1]=1;
for(int i=1;i<=m-1;i++){
int _min=inf;
for(int j=1;j<=m;j++){
if(book[j]==0 && dis[j]<_min){
_min=dis[j];
temp=j;
}
}
book[temp]=1;
for(int k=1;k<=m;k++){
if(ma[temp][k]<inf){
if(dis[k]>dis[temp]+ma[temp][k]){
dis[k]=dis[temp]+ma[temp][k];
}
}
}
}
for(int i=1;i<=m;i++){
cout<<dis[i]<<' ';
}
puts("");
return 0;
}
/*
9 6
1 2 1
1 3 12
2 3 9
2 4 3
3 5 5
4 3 4
4 5 13
4 6 15
5 6 4
*/