//Author:PanDaoxi
#include <iostream>
using namespace std;
int g[1001][1001];
int main(){
int n,e,a,b,c; //c权值
cin>>n>>e; //顶点和边数
//接收边的状态
for(int i=1;i<=e;i++){
cin>>a>>b>>c;
g[a][b]=c;
g[b][a]=c;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<g[i][j];
}
cout<<endl;
}
return 0;
}