#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; static const double EPS = 1e-8; static const double PI = 4.0 * atan(1.0); static const double PI2 = 8.0 * atan(1.0); typedef long long ll; struct Log { int t, s, d; bool operator<(const Log& rh) const { return t < rh.t; } }; int main() { for (int N, M; cin >> N >> M && (N || M);){ vector dp(N + 1); dp[1] = true; vector logs; for (int i = 0; i < M; ++i){ Log l; cin >> l.t >> l.s >> l.d; logs.push_back(l); } sort(logs.begin(), logs.end()); for (vector::iterator it = logs.begin(); it != logs.end(); ++it){ dp[it->d] |= dp[it->s]; } cout << count(dp.begin(), dp.end(), 1) << endl; } }