test/1E.py
2026-07-01 19:46:51 +03:00

25 lines
No EOL
533 B
Python

n, m = map(int, input().split())
adj = [[] for _ in range(n + 1)]
in_degree = [0] * (n + 1)
for _ in range(m):
u, v = map(int, input().split())
adj[u].append(v)
in_degree[v] += 1
q = []
for i in range(1, n + 1):
if in_degree[i] == 0:
q.append(i)
head = 0
topsort = []
while head < len(q):
u = q[head]
head += 1
topsort.append(u)
for v in adj[u]:
in_degree[v] -= 1
if in_degree[v] == 0:
q.append(v)
if len(topsort) == n:
print(*topsort)
else:
print("-1")