#include <iostream>
#include <cstring>
using namespace std;
const int N = 100010;
int h[N],ne[N],e[N],idx;
bool st[N];
int n,m,maxx;
void add(int a,int b)
{
e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
void dfs(int k)
{
st[k]=true;
for(int i=h[k];i!=-1;i=ne[i])
{
int j =e[i];
if(!st[j])
{
if(maxx<j) maxx=j;
dfs(j);
}
}
}
int main()
{
memset(h,-1,sizeof h);
cin >> n >> m;
for(int i=1;i<=m;i++)
{
int a,b;
cin >> a >> b;
add(a,b);
}
for(int i=1;i<=n;i++)
{
maxx=i;
dfs(i);
cout << maxx << ' ';
//for(int i=1;i<=n;i++) st[i]=false;
memset(st,false,sizeof st);
}
return 0;
}