问题 B: 魔法学院的课程安排

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:3

题目描述

魔法学院开设了 N 门课程,编号 0 到 N-1。 给定 M 个先修关系,每个关系 [a,b] 表示:要修读课程 a,必须先修完课程 b。 请判断是否可以修完所有课程。如果可以,输出一种可行的修课顺序;如果不能(存在循环依赖),输出 "Impossible"。

输入

第一行两个整数 N, M。 接下来 M 行,每行两个整数 a, b,表示 b → a 的依赖关系。

输出

一行整数,表示修课顺序;或输出 "Impossible"。

样例输入 复制

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

样例输出 复制

1 3 0 2 4 5

提示

1 ≤ N ≤ 5000

依赖关系为:0→2→4, 1→3→5, 3→4→5。 这是一个复杂的 DAG,0 和 1 是入度为 0 的点。 输出 1 0 3 2 4 5 也是正确的。