n, m=map(int, input().split()) #顶点数,边数

from collections import deque
#邻接表+入度表+队列
graph=[[] for _ in range(n+1)]
indegree=[0]*(n+1)
for i in range(m):
    s,e=map(int, input().split())
    graph[s].append(e)
    indegree[e]+=1

q=deque()
for i in range(1,n+1):
    if indegree[i]==0:#添加入度为0的结点到队列中
        q.append(i)
res=[]
while q:
    s= q.popleft()
    res.append(s)
    for e in graph[s]:
        indegree[e]-=1
        if indegree[e]==0:
            q.append(e)

if len(res)!=n:
    print(-1)
else:
    print(' '.join(map(str,res)))





分配 n+1个,这样访问下标的时候可以从 1 开始