#include<stdio.h>
#define Maxsize 100
#define num 10
typedef struct
{
int i,j;
int v;
}SpNode;
typedef struct
{
int m,n,t;
SpNode data[Maxsize];
}SpMatrix;
void InitSpNode(SpMatrix*a)
{
int i,j,k,val,maxrow,maxcol;
maxrow=0;
maxcol=0;
i=j=0;
k=0;
while (i!=-1&&j!=-1)
{
scanf("%d %d %d",&i,&j,&val);
a->data[k].i=i;
a->data[k].j=j;
a->data[k].v=val;
if(maxrow<i)maxrow=i;
if(maxcol<j)maxcol=j;
k++;
}
a->m=maxrow;
a->n=maxcol;
a->t=k-1;
}
void TransMatrix(SpMatrix *A,SpMatrix *B)
{
B->t=A->t;
B->m=A->m;
B->n=A->n;
int q=1;
if(A)
{
for(int col=0;col<A->n;col++)
{
for (int p=1;p<=A->t;p++)
{
if(col==(A->data[p].j))
{
B->data[q].i=A->data[p].i;
B->data[q].j=A->data[p].j;
B->data[q].v=A->data[p].v;
q++;
}
}
}
}
}
int main ()
{
SpMatrix T;
InitSpNode(&T);
SpMatrix M;
for (int k = 0; k < num; k++)
{
M.data[k].i=0;
M.data[k].j=0;
M.data[k].v=0;
}
TransMatrix(&T,&M);
for ( int s=1; s<M.t;s++)
{
printf("%d,%d,%d",M.data[s].i,M.data[s].j,M.data[s].v);
printf("\n");
}
return 0;
}