MOG Round #30Ended |
Un gran proyecto está dividido en $n$ diferentes subproyectos. El responsable del proyecto ha establecido ciertas relaciones de precedencia entre los subproyectos. Esto significa que hay pares de subproyectos $u$ y $v$ tales que la realización de $u$ debe hacerse antes de comenzar la de $v$. En este caso diremos que $u$ precede directamente a $v$. Diremos además que $u$ precede a $v$ si: $u$ precede directamente a $v$ o existe un subproyecto $w$ tal que $u$ precede directamente a $w$ y $w$ precede a $v$. Cualquier subproyecto $u$ es considerado crítico si para todo subproyecto $v$ (diferente de $u$), $u$ precede a $v$ o $v$ precede a $u$. Se sabe todo el proyecto puede ser realizado, es decir, no existe un subproyecto $u$ que se preceda a si mismo. Tu misión es determinar cúales son los proyectos críticos.
La primera línea de la entrada contiene dos enteros $n$ y $m$ ($1 \le n \le 100000$, $0 \le m \le 1000000$) - la cantidad de subproyectos y las precedencias directas entre ellos. Los subproyectos están enumerados desde $1$ hasta $n$. En cada una de las siguientes $m$ líneas aparecen dos enteros $u$ y $v$ ($1 \le u \neq v \le n$), indicando que el subproyecto $u$ precede directamente al subproyecto $v$.
En la primera línea imprima la cantidad de subproyectos críticos y en la segunda los identificadores de cada uno de ellos, ordenados de manera creciente y separados por espacios. Si no hay subproyectos críticos imprima solo una línea con un 0.