#include<bits/stdc++.h>
using namespace std;
int n,m,maxn=-1;
vector<int> mp[100000];
int st[1000010]={0};
int num[1000100]={0};
void dfs(int x){
maxn=max(maxn,x);
num[x]=maxn;
st[x]=1;
for(int i=0;i<mp[x].size();i++){
int point=mp[x][i];
if(st[point]==1) continue;
if(num[point]>maxn){
maxn=num[point];
continue;
}
dfs(point);
}
st[x]=0;
num[x]=0;
}
int main(){
cin >>n >> m;
for(int i=1;i<=m;i++){
int u,v;
cin >> u >> v;
mp[u].push_back(v);
}
for(int i=1;i<=n;i++){
dfs(i);
cout << maxn << " ";
// memset(st,0,sizeof(st));
maxn=0;
}
return 0;
}