#P1167. 课程安排

    ID: 179 传统题 1000ms 128MiB 尝试: 0 已通过: 0难度: 普及 ← 上一题 下一题 → 随机一题 上传者: 标签 图论 拓扑排序 优先队列 贪心
显示设置

课程安排

题目描述

某专业有 nn 门课程,编号 1∼n1\sim n,还有 mm 条先修关系:第 jj 条形如「课程 uju_j 必须在课程 vjv_j 之前修完」。

学生每学期只能修一门课,希望修完全部 nn 门课,并在所有合法顺序中选出字典序最小的一种(也就是能修的课里总是优先修编号最小的)。

请输出这个顺序;若先修关系中出现互相矛盾(构成环),输出 −1-1。

输入格式

第一行两个整数 n,mn,m。

接下来 mm 行,每行两个整数 uj,vju_j,v_j,含义如上。保证 uj≠vju_j\ne v_j,且同一对关系不会重复出现。

输出格式

一行 nn 个整数,表示字典序最小的修课顺序;无解输出 −1-1。

输入输出样例 #1

输入 #1

4 3
1 2
1 3
3 4

输出 #1

1 2 3 4

输入输出样例 #2

输入 #2

2 2
1 2
2 1

输出 #2

-1

说明

数据范围

  • 对于 100%100\% 的数据,1≤n≤1051\le n\le 10^5,0≤m≤2×1050\le m\le 2\times 10^5。