Skierowany graf acykliczny

To zadanie pochodzi z Hackerranka. Tam też znajdują się testy do zadania.
Jeśli Twoje rozwiązanie zostanie pozytywnie ocenione na tamtych testach, należy wysłać tu zgłoszenie wypisujące "Zrobione".
Uwaga! Maksymalny wynik na stronie za zadanie to 80

Limit pamięci: ???

Mamy dany DAG. Dla każdego wierzchołka definiujemy f(v) jako liczbę wierzchołków do których można dojść z v. Oblicz, ile jest wierzchołków spełniających n <= 2 * f(v).

Wejście

W pierwszym wierszu znajdują się dwie liczby n i m (n, m <= 50000), oznaczające kolejno liczbę wierzchołków i krawędzi
W następnych m wierszach znajdują się pary liczb a, b oznaczający, że istnieje krawędź z wierzchołka a do b.

Wyjście

Wypisz liczbę wierzchołków spełniających podaną wcześniej formułę

Przykład

Wejście:
5 4
1 2
3 2
2 4
4 5

Wyjscie:
3