#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn=1e5+10;
int h[maxn],e[maxn],ne[maxn],idx;
int n,m,A[maxn],vis[maxn];
void add(int a,int b)
{
e[idx]=b;
ne[idx]=h[a];
h[a]=idx++;
}
void dfs(int u)
{
if(!A[u]) A[u]=u;
for(int i=h[u];i!=-1;i=ne[i])
{
int j=e[i];
if(!A[j])
A[j]=A[u];
dfs(j);
}
}
int main()
{
memset(h,-1,sizeof(h));
cin>>n>>m;
while(m--)
{
int a,b;
cin>>a>>b;
add(b,a);
}
for(int i=n;i>=1;i--)
{
dfs(i);
}
for(int i=1;i<=n;i++)
cout<<A[i]<<' ';
return 0;
}