import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

T read(T)() { return readln.chomp.to!T; }
T[] reads(T)() { return readln.split.to!(T[]); }
alias readint = read!int;
alias readints = reads!int;

void main() {
    auto nm = readints;
    int n = nm[0], m = nm[1];

    auto balls = new int[n + 1]; // 各箱に入っているボールの数
    balls[] = 1;
    auto reds = new bool[n + 1]; // 赤いボールが入っている可能性
    reds[1] = true;

    for (int i = 0; i < m; i++) {
        auto xy = readints;
        int x = xy[0], y = xy[1];
        // x の箱のボールを y に移す
        balls[x]--;
        balls[y]++;
        if (reds[x]) {
            reds[y] = true;
            if (balls[x] == 0) reds[x] = false;
        }
    }

    auto ans = reds.count(true);
    writeln(ans);
}
