#include<bits/stdc++.h>
using namespace std;
int lin[100000000]={0};//由i出去的边的下标。
struct edge
{
int y;//该边的终点编号 。
int v;//该边的权值。
int next;//同起点下条边的编号。
}e[100000000]={0};//边表。
int len=0;//边号。
void input(int xx,int yy,int vv)//xx起点,yy终点,vv权值。
{
e[++len].next=lin[xx];//倒推,下一条边的编号为上一次进函数的边的下标。
e[len].y=yy;
e[len].v=vv;
lin[xx]=len;
}
int main()
{
int n,m;
cin>>n>>m;//n是边数。
for(int i=1;i<=n;i++)
{
int xx,yy,vv;
cin>>xx>>yy>>vv;
input(xx,yy,vv);
input(yy,xx,vv);//无向图两边都要插入,有向图只插一次。
}
return 0;
}