while 1:
try:
N,M=list(map(int,input().split()))
sons=[[] for i in range(N+1)] # 记录每个队的手下败将
dft=[0 for i in range(N+1)] # 记录每个队的败场数
for i in range(M):
a,b=list(map(int,input().split()))
sons[a].append(b)
dft[b]+=1
fath=[] # 记录未尝一败的队伍
res=[]
for i in range(1,N+1):
if dft[i]==0:
fath.append(i)
while fath:
m=min(fath)
res.append(m) # 记录未尝一败的队伍中最小值
fath.remove(m) # 拓扑网中去掉该队伍
for son in sons[m]:
dft[son]-=1 # 该队伍的手下败将败场数-1
if dft[son]==0:
fath.append(son)
print(*res)
except Exception as e:
break

京公网安备 11010502036488号