import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;
import std.typecons;

auto readInts() {
	return array(map!(to!int)(readln().strip().split()));
}
auto readInt() {
	return readInts()[0];
}
auto readLongs() {
	return array(map!(to!long)(readln().strip().split()));
}
auto readLong() {
	return readLongs()[0];
}

const real eps = 1e-10;

void main(){
	while(true) {
		auto nm = readInts();
		auto n = nm[0];
		auto m = nm[1];
		if((n|m) == 0) return;

		int[][] tsd;
		for(int i; i < m; ++i) {
			tsd ~= readInts();
		}
		tsd.sort();

		auto infected = new bool[](n+1);
		infected[1] = true;
		for(int i; i < m; ++i) {
			auto t = tsd[i][0];
			auto s = tsd[i][1];
			auto d = tsd[i][2];
			if(infected[s]) infected[d] = true;
		}
		writeln(infected.filter!("a").array.length);
	}
}