Fie G un graf orientat cu N noduri și M arce. Spunem că nodul Y este accesibil din nodul X dacă se poate ajunge de la X la Y mergând pe arce în sensul corespunzător al acestora. Spunem că nodul X este “popular” dacă pentru fiecare nod Y al grafului G se îndeplinește cel puțin una din condițiile:
1. X este accesibil din Y;
2. Y este accesibil din X.
Cerința
Dându-se cele două numere N si M cât si arcele grafului, să se afle care sunt nodurile populare din graf.
Date de intrare
Prima linie a fișierului drumuri.in conține numerele N și M, cu semnificația din enunț. Următoarele M linii conțin câte două numere X și Y, semnificând faptul că există arc orientat de la X la Y.
Date de ieșire
Prima linie a fișierului drumuri.out conține numărul NR, reprezentând numărul de noduri populare ale grafului. Următoarea linie va conține cele NR noduri populare afișate în ordine crescătoare.
Restricții și precizări
1 ≤ N ≤ 150.0001 ≤ M ≤ 300.000- Pentru 50% din punctaj
N ≤ 700,M ≤ 1100 - Pentru 65% din teste, G este aciclic
Exemplu:
drumuri.in
5 4 1 2 3 2 2 4 4 5
drumuri.out
3 2 4 5
Explicație
Nodurile 2, 4 și 5 sunt singurele noduri populare. Nodul 1, spre exemplu, nu este popular deoarece nu este accesibil din 3, iar nici nodul 3 nu este accesibil din 1.