#include<bits/stdc++.h>
using namespace std;
const int N = 1000005;
int h[N], idx;
struct edge{
int v, w, nxt;
} e[N];
int n, m, a, b, w;
void add(int a, int b, int w)
{
e[idx].v = b, e[idx].w = w, e[idx].nxt = h[a], h[a] = idx ++;
}
int main()
{
cin >> n >> m;
memset(h, -1, sizeof h);
for (int i = 1; i <= m; i ++) {
cin >> a >> b >> w;
add(a, b, w);
}
for (int i = 1; i <= n; i ++) {
cout << i << endl;
for (int j = h[i]; j != -1; j = e[j].nxt){
cout << i << " " << e[j].v << " " << e[j].w << endl;
}
}
}