Počet bodov:
Popis:  12b
Program:  8b

Po veľkom úspechu pri stavbe druhého slovenského mrakodrapu v Kokave nad Rimavicou sa dcérska firma Trojstenu (ktorá sa zaoberá cestnými stavbami) rozhodla pustiť do stavby ciest. Keďže zamestnanci v tejto firme sú výrazne lepší programátori ako robotníci, tak sa nejaké cesty síce postavili, ale iba tak veľmi náhodne. Čo je ešte horšie, všetky postavené cesty sú iba jednosmerné, na druhý smer sa trochu zabudlo.

To sa ľuďom ani trochu nepáčilo a teda sa začali búriť. Aby vedenie Trojstenu upokojilo situáciu, rozhodlo sa sľúbiť ľuďom, že označí postavené cesty tak, aby z každého mesta viedla aspoň jedna cesta. Bohužiaľ, tento nerozvážny sľub vedenie dalo pred tým, než si overili, že to je možné.

Keďže všetci v Trojstene sa vybrali otáčať cedule na cestách, tak neostal nikto, kto by vlastne zistil, či je ich možné pootáčať tak aby splnili sľub. Vedeli by ste to zistiť vy?

Úloha

Máme cestnú sieť, ktorá sa skladá z miest a ciest medzi nimi. Tieto cesty sú všetky jednosmerné a vašou úlohou je zistiť, či ich vieme orientovať tak, aby z každého mesta išla von aspoň jedna cesta. Každá cesta spája vždy práve dve mestá, nemôže ísť z mesta do toho istého mesta a medzi dvomi mestami vedie vždy najviac jedna cesta.

Formát vstupu

V prvom riadku vstupu sú dve medzerou oddelené čísla \(n, m\) (\(1 \leq n \leq 10^6\), \(0 \leq m \leq 10^6\)) počet miest a počet ciest.

Nasleduje \(m\) riadkov, na každom sú dve medzerou oddelené čísla \(a,b\) (\(0 \leq a,b < n, a \neq b\)), ktoré hovoria, že mestá \(a\) a \(b\) sú spojené cestou. Mestá sú označené číslami od \(0\) po \(n-1\).

V jednotlivých sadách platia nasledujúce obmedzenia:

Sada 1 2 3 4
\(1 \leq n \leq\) \(20\) \(100\) \(1\,000\) \(100\,000\)
\(1 \leq m \leq\) \(40\) \(10\,000\) \(1\,000\,000\) \(1\,000\,000\)

Formát výstupu

Vypíšte jediný riadok, na ktorom je buď text ano, ak vieme orientovať cesty tak, aby z každého mesta viedla aspoň jedna cesta. Ak to nejde, vypíšte nie.

Príklady

Input:

3 3
0 1
1 2
2 0

Output:

ano

V tomto prípade vieme napríklad orientovať cesty tak, že cesty idú 1 -> 0, 0 -> 2 a 2 -> 0.

Input:

4 3
0 1
1 2
2 0

Output:

nie

Podobný prípad, ale máme o jedno mesto naviac (mesto 3). Z tohoto mesta žiadna cesta vychádzať nemôže, keďže na žiadnej ceste nie je.

Input:

4 2
0 1
2 3

Output:

nie

Nech orientujeme cesty akokoľvek, nevieme zariadiť, aby zo všetkých miest vychádzala aspoň jedna cesta.

Input:

6 6
0 1
1 2
2 0
3 4
4 5
5 3

Output:

ano

Ak cesty orientujeme ako 0 -> 1, 1 -> 2, 2 -> 0, 3 -> 4, 4 -> 5, 5 -> 3, tak z každého mesta vychádza aspoň jedna cesta.

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.