/*
feladat: S86
név: Makk László
osztály: 12
iskola: SZTE Ságvári Endre Gyakorló Gimnázium
város: Szeged
*/

A program C++ nyelven lett írva, CodeBlocks 13.12-es fejlesztői környezetben (GNU GCC fordító).

Az algoritmus:
	Röviden:
		Modell: gráf.
		Időben visszafelé haladunk, visszatesszük az éleket, közben BFS a gyökérből.
		Amikor megtalálunk egy csúcsot, abban az időpontban esett le az adott majom.
		Időben O(N+M).
	Bővebben:
		A majmokat és a köztük lévő kapaszkodást egy gráffal modellezzük, ahol ezek rendre a
		csúcsok és az élek (többszörös éleket megengedünk, illetve nem kell irányítottnak
		lenniük). Először lejátszuk az M darab eseményt, azaz ahogy engedik el egymást a
		majmok (töröljük az adott éleket). Majd az utolsó időpont után bejárjuk a gráfot az 1-es
		majomból (széltében kereséssel). Akiket megtalált a bejárás, azok nem estek le,
		kiírandó értékük -1 lesz. Ezután időben visszafelé játszuk le az eseményeket.
		Ha egy majom elengedett egy másikat, visszatesszük ezt az élt, és (szükség
		szerint) folytatjuk a széltében keresést. Akiket most találtunk meg, azok ebben
		az időpontban estek le. Visszateszünk még egy élt...
		Ez időben a beolvasás, a "leszimulálás" (eljutunk a végállapotba), és egy széltében
		keresés (amit látszólag megbonyolít, hogy közben veszünk hozzá éleket, de tekinthetjük
		úgy, hogy nem is vettük el őket), azaz O(N+M). [A széltében keresés minden élt
		legfeljebb kétszer vizsgál meg.]
