/*邻接矩阵的存储*/
#include<stdio.h>
#include<stdlib.h>
struct ele
{
int num;
int value;
ele*next;
}p[125];
int main()
{
int i,j,k;
ele *t;
int n,m;
while(1)
{
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
p[i].num=i;
p[i].value=-1;
p[i].next=NULL;
}
while(m--)
{
scanf("%d%d%d",&i,&j,&k);
t=(ele*)malloc(sizeof(ele));
t->value=k;
t->num=i;
t->next=p[j].next;
p[j].next=t;
t=(ele*)malloc(sizeof(ele));
t->value=k;
t->num=j;
t->next=p[i].next;
p[i].next=t;
}
ele *q;
for(i=1;i<=n;i++)
{
printf("%d",i);
q=p[i].next;
while(q)
{
printf("% %d*%d",q->num,q->value);
q=q->next;
}
printf("\n");
}
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
struct ele
{
int num;
int value;
ele*next;
}p[125];
int main()
{
int i,j,k;
ele *t;
int n,m;
while(1)
{
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
p[i].num=i;
p[i].value=-1;
p[i].next=NULL;
}
while(m--)
{
scanf("%d%d%d",&i,&j,&k);
t=(ele*)malloc(sizeof(ele));
t->value=k;
t->num=i;
t->next=p[j].next;
p[j].next=t;
t=(ele*)malloc(sizeof(ele));
t->value=k;
t->num=j;
t->next=p[i].next;
p[i].next=t;
}
ele *q;
for(i=1;i<=n;i++)
{
printf("%d",i);
q=p[i].next;
while(q)
{
printf("% %d*%d",q->num,q->value);
q=q->next;
}
printf("\n");
}
}
return 0;
}