#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct l{int s,d,t;}l;
int N,M,i,j,I[20001],R;
l L[20001];
int c(const void *a,const void *b)
{
	return (*(l*)a).t-(*(l*)b).t;
}

int main()
{
	for(;scanf("%d%d",&N,&M),N;)
	{
		memset(I,0,sizeof(I));
		I[1]=1;
		for(i=0;i<M;i++)
			scanf("%d%d%d",&L[i].t,&L[i].s,&L[i].d);
		qsort(L,M,sizeof(l),c);
		for(i=0;i<M;i++)
			I[L[i].d]|=I[L[i].s];
		for(i=R=0;i<=N;i++)
			if(I[i])
				R++;
		printf("%d\n",R);
	}
	return 0;
}