V,E=map(int,input().split())
G,vi,mr={x:[] for x in range(1,V+1)},[False]*(V+1),[0]*(V+1)
for _ in range(E):
u,v=map(int,input().split())
G[u].append(v)
def DFS(vi,now,mr,G):
vi[now],mr[now]=True,now
for ni in G[now]:
if not vi[ni]:
DFS(vi,ni,mr,G)
mr[now]=max(mr[now],mr[ni])
for x in range(1,V+1):
if not vi[x]:
DFS(vi,x,mr,G)
print(*mr[1:])