#include<bits/stdc++.h>
using namespace std;
int main()
{
int node, edge;
cin>>node>>edge;
int u, v, w;
int graph[node+1][node+1];
memset(graph, 0, sizeof(graph));
for(int i = 1; i <= edge; i++)
{
cin>>u>>v>>w;
graph[u][v] = w;
graph[v][u] = w;
}
/// i = node, j = node
for(int i = 1; i <node+1; i++)
{
for(int j = 1; j < node+1; j++)
{
cout<<graph[i][j]<<" ";
}
cout<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IG5vZGUsIGVkZ2U7CiAgICBjaW4+Pm5vZGU+PmVkZ2U7CiAgICBpbnQgdSwgdiwgdzsKICAgIGludCBncmFwaFtub2RlKzFdW25vZGUrMV07CiAgICBtZW1zZXQoZ3JhcGgsIDAsIHNpemVvZihncmFwaCkpOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBlZGdlOyBpKyspCiAgICB7CiAgICAgICAgY2luPj51Pj52Pj53OwogICAgICAgIGdyYXBoW3VdW3ZdID0gdzsKICAgICAgICBncmFwaFt2XVt1XSA9IHc7CiAgICB9CgogICAgLy8vIGkgPSBub2RlLCBqID0gbm9kZQogICAgZm9yKGludCBpID0gMTsgaSA8bm9kZSsxOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8IG5vZGUrMTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8Z3JhcGhbaV1bal08PCIgIjsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KCgp9Cg==