#include<bits/stdc++.h>
using namespace std;
vector<int>g[100005];
bool flag[100005];
int ans[100005],j,cnt;
void dfs(int x){
ans[x]=max(ans[x],j);
cnt++;
for(int i=0;i<g[x].size();++i){
int a=g[x][i];
if(ans[a])continue;
dfs(a);
}
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1,u,v;i<=m;++i){
cin>>u>>v;
g[v].push_back(u);
}
j=n;
while(cnt<n){
dfs(j);
j--;
}
for(int i=1;i<=n;++i){
cout<<ans[i]<<' ';
}
return 0;
# }