Plan de cursos II
Hay \(n\) cursos, numerados de \(0\) a \(n - 1\), y \(m\) requisitos: el par \(b\) \(a\) significa que para tomar el curso \(b\) primero hay que aprobar el \(a\). Encuentra un orden en que se pueden tomar todos los cursos.
Para que la respuesta sea única, imprime el orden lexicográficamente menor: en cada paso, entre los
cursos que ya se pueden tomar, va el de menor número. Si no existe ningún orden (hay requisitos circulares),
imprime -1.
Entrada
La primera línea tiene \(n\) \((1 \le n \le 10^5)\) y \(m\) \((0 \le m \le 2 \cdot 10^5)\). Cada una de las siguientes \(m\) líneas tiene un requisito \(b\) \(a\) \((b \ne a)\). No hay requisitos repetidos.
Salida
Los \(n\) cursos en el orden pedido, separados por espacios, o -1.
Ejemplo 1
Entrada
2 1
1 0
Salida
0 1
Ejemplo 2
Entrada
4 4
1 0
2 0
3 1
3 2
Salida
0 1 2 3
Ejemplo 3
Entrada
2 2
1 0
0 1
Salida
-1
Ejemplo 4
Entrada
1 0
Salida
0
Comentarios