from collections import defaultdict
class Graph:
def __init__(self) -> None:
self.gragh = defaultdict(list)
def add_egde(self, start, end):
self.gragh[start].append(end)
self.gragh[end] = self.gragh[end]
def topo_sort(self) -> list:
in_degree = {node:0 for node in self.gragh}
for node in self.gragh:
for adj in self.gragh[node]:
in_degree[adj] += 1
q = []
for node, v in in_degree.items():
if v == 0:
q.append(node)
for u in q:
for v in self.gragh[u]:
in_degree[v] -= 1
if in_degree[v] == 0:
q.append(v)
if len(q) < len(self.gragh):
return []
return q
n, m = map(int, input().split())
topo_gragh = Graph()
for _ in range(m):
u, v = map(int, input().split())
topo_gragh.add_egde(u, v)
res = topo_gragh.topo_sort()
if res:
print(' '.join(map(str, res)))
else:
print(-1)