思路:如题,非常经典的拓扑排序模板题。建议没学过的同学好好学习一下,主要是引入了pre数组,然后这里采用bfs实现

代码:

import sys
from collections import deque

input = lambda: sys.stdin.readline().strip()

import math
inf = 10 ** 18

def I():
    return input()

def II():
    return int(input())

def MII():
    return map(int, input().split())

def GMI():
    return map(lambda x: int(x) - 1, input().split())

def LI():
    return input().split()

def LII():
    return list(map(int, input().split()))

def LFI():
    return list(map(float, input().split()))

fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))

'''

'''

def solve():
    n, m = MII()
    g = [[] for _ in range(n + 1)]
    pre = [0] * (n + 1)
    for _ in range(m):
        u, v = MII()
        g[u].append(v)
        pre[v] += 1

    q = deque([i for i in range(1, n + 1) if pre[i] == 0])
    ans = []
    while q:
        u = q.popleft()
        ans.append(u)
        for v in g[u]:
            pre[v] -= 1
            if pre[v] == 0:
                q.append(v)

    if len(ans) == n:
        print(*ans)
    else:
        print(-1)

t = 1
# t = II()
for _ in range(t):
    solve()