具体解释见于注释
import sys
sys.setrecursionlimit(10**6)
vis=[0]*(10**6)
a=[0]*(10**6)
def dfs(u,v):
if vis[u]:
return
vis[u]=1
a[u]=v
for i in (beifangwen[u]):
if not vis[i]:
dfs(i,v)
n,m=map(int,input().split())
beifangwen=[[] for _ in range(n+1)]
for i in range(m):
c,d=map(int,input().split())
beifangwen[d].append(c)
for i in range(n,0,-1):
dfs(i,i)
for i in range(1,n+1):
print(a[i],end=" ")