#XSS2026T10. Keep RiNG in Order

Keep RiNG in Order

题目背景

Hailuo 是 Live House RiNG 的管理员,负责安排今天所有人的出场顺序。

一大早,第一次参加演出的 Mutsumi 就找到了他。由于有些害羞,她始终不太敢独自走上舞台。犹豫了很久后,她小声提出了一个请求:希望自己能够在 Saki 演出之后上场。对她来说,只要先看到 Saki 在舞台上演奏的样子,就能安心不少,也能获得走上舞台的勇气。

然而,这段对话正好被休息室里的 Rikki 听见了,她立刻不高兴起来——按照原本的安排,排在 Saki 后面的人明明是 Tomorin。

“竟敢无视灯?”

立希当场要求 Hailuo 无论如何都要保证 Tomorin 在 Saki 之后出场,而且不能因为其他人的请求随便改变这一点。

没过多久,其他成员也陆续找了过来。

有人希望在某个人之前出场,因为她想早点结束演出;有人坚持必须在某个人之后登台;还有人表示,如果自己的出场顺序被改到某个人前面,就绝对不会接受……

面对越来越多的要求,Hailuo 很快发现事情已经完全超出了自己的处理能力。于是,他找到了聪明的你,希望你能够根据所有人的要求,判断是否存在一种合理的出场顺序,并帮他安排好今天的演出。

题目描述

今天有 nn 位成员准备登台演出,她们分别编号为 1,2,…,n1,2,\ldots,n。她们向你提出了 mm 条要求,每条要求指定成员 uu 必须在成员 vv 之前出场。

你需要安排所有成员的出场顺序方案,满足以上 mm 条要求。如果存在多个合法方案,输出任意一个即可;如果不存在合法方案,输出 −1-1。

输入格式

第一行包含两个整数 n,mn,m,分别表示成员数量和要求数量。

接下来 mm 行,每行包含两个整数 u,vu,v,表示成员 uu 必须在成员 vv 之前出场。

输出格式

如果不存在合法顺序,输出一行一个整数 −1-1。

否则输出一行 nn 个整数,表示所有成员的一种合法出场顺序。每位成员必须恰好出现一次。

测试样例

5 5
1 4
5 1
2 3
3 4
2 5
2 5 1 3 4
3 3
1 2
2 3
3 1
-1

说明/提示

数据规模与约定

对于所有测试数据,1≤n≤2×1051\le n\le 2\times 10^5,0≤m≤2×1050\le m\le 2\times 10^5,1≤u,v≤n1\le u,v\le n,且 u≠vu\ne v。保证同一条要求不会重复出现。

样例解释

样例一中,22 在 55 和 33 之前,55 在 11 之前,11 和 33 都在 44 之前,因此给出的顺序满足所有要求。样例二中,三位成员的要求首尾相接,无法安排合法顺序。