H - Proyectos

Languages: C, C++, Java, JavaScript, Haskell, Tiger, Python, Pascal, C#
Time & Memory limits: (details)

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.

Input

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$.

Output

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.

Sample test(s)

Input
7 9 1 3 2 3 3 4 3 5 4 6 5 6 1 7 3 7 7 4
Output
2 3 6