#include<bits/stdc++.h>
using namespace std;
int n,m,u,v,c[1000][1000],nho;
bool tick[10000],a[1000][1000];
void DFS(int u)
{
stack<int>st;
if(tick[u]==true)
{
st.push(u);tick[u]=false;
while(!st.empty())
{
v=st.top();st.pop();//cout<<v<<" ";
for(int i=n;i>=1;i--)
{
if (a[i][v]==true && tick[i]==true)
{
st.push(i); tick[i]=false;
c[i][v]+=c[nho][];
}
}
nho=v;
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<n;i++)
{
cin>>u>>v>>c[u][v];
a[u][v]=true;
a[v][u]=true;
}
memset(tick,true,sizeof(tick));
for(int j=1;j<=m;j++)
DFS(j);
for(int j=1;j<=n;j++)
for(int i=1;i<=n;i++)
cout<<j<<" "<<i<<" "<<c[j][i]<<endl;
}