#include<bits/stdc++.h>
using namespace std;
int main()
{
int node, edge;
cin>>node>>edge;
vector<pair<int, int> >graph[node+1];
int u, v, w;
for(int i = 1; i <= edge; i++)
{
cin>>u>>v>>w;
graph[u].push_back(make_pair(v, w));
graph[v].push_back(make_pair(u, w));
}
for(int i = 1; i <= node; i++)
{
cout<<i<<" -> ";
for(int j = 0; j < graph[i].size(); j++)
{
cout<<"("<<graph[i][j].first<<", "<<graph[i][j].second<<") ";
}
cout<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IG5vZGUsIGVkZ2U7CiAgICBjaW4+Pm5vZGU+PmVkZ2U7CiAgICB2ZWN0b3I8cGFpcjxpbnQsIGludD4gPmdyYXBoW25vZGUrMV07CgogICAgaW50IHUsIHYsIHc7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IGVkZ2U7IGkrKykKICAgIHsKICAgICAgICBjaW4+PnU+PnY+Pnc7CiAgICAgICAgZ3JhcGhbdV0ucHVzaF9iYWNrKG1ha2VfcGFpcih2LCB3KSk7CiAgICAgICAgZ3JhcGhbdl0ucHVzaF9iYWNrKG1ha2VfcGFpcih1LCB3KSk7CiAgICB9CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBub2RlOyBpKyspCiAgICB7CiAgICAgICAgY291dDw8aTw8IiAtPiAiOwogICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBncmFwaFtpXS5zaXplKCk7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQ8PCIoIjw8Z3JhcGhbaV1bal0uZmlyc3Q8PCIsICI8PGdyYXBoW2ldW2pdLnNlY29uZDw8IikgIjsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KCn0KCgoKCgoKCgo=
1 -> (2, 3) (4, 6)
2 -> (1, 3) (3, 5) (4, 1)
3 -> (2, 5) (4, 5)
4 -> (3, 5) (1, 6) (2, 1)