#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 100;
const int maxm = 100000;
typedef struct edgenode {
int to; //边的终点
int next; //当前下一条边的编号
int w; //边的权值
}edgenode;
int head[maxn]; //head[i]存放已i为起点的第一条边
edgenode edge[maxm];
int edgenum = 1;
int n = 0, m = 0;
int init() {
edgenum = 1;
memset(head, 0, sizeof(head));//chu shi hua 0;
return 0;
}
int outputmap(){
for (int i = 1; i <= n; i++) {
for (int k = head[i]; k != 0; k = edge[k].next) {
printf("(%d --- > %d) == %d\n", i, edge[k].to, edge[k].w);
}
}
return 0;
}
int main() {
init();
int a = 0, b = 0, c = 0;
while (scanf("%d%d", &n, &m) == 2) {
for (int i = 0; i < m; i++) {
scanf("%d%d%d", &a, &b, &c);
edge[edgenum].to = b;
edge[edgenum].w = c;
edge[edgenum].next = head[a];
head[a] = edgenum;
edgenum++;
edge[edgenum].to = a;
edge[edgenum].w = c;
edge[edgenum].next = head[b];
head[b] = edgenum;
edgenum++;
}
outputmap();
init();
}
return 0;
}