#include <stdio.h>
#include <memory.h>
#define N 20000
struct data{
  int t,s,d;
};
int main(void){
  int n,m,i,j,ans,f[N+1];
  struct data d[N],t;
  while(1){
    scanf("%d %d",&n,&m);
    if(!n)
      break;
    memset(f,0,sizeof(f));
    memset(d,0,sizeof(d));
    for(i=0;i<m;i++)
      scanf("%d %d %d",&d[i].t,&d[i].s,&d[i].d);
    for(i=0;i<m-1;i++){
      for(j=m-1;j>i;j--){
	if(d[j-1].t>d[j].t){
	  t=d[j-1];
	  d[j-1]=d[j];
	  d[j]=t;
	}
      }
    }
    f[1]=1;
    for(i=0;i<m;i++)
      if(f[d[i].s])
	f[d[i].d]=1;
    ans=0;
    for(i=0;i<=n;i++)
      ans+=f[i];
    printf("%d\n",ans);
  }
  return 0;
}