#include<bits/stdc++.h>
using namespace std;
int n,m,head[100001],To,From,cnt,ans[100001];
struct node{
int nxt,to;
}a[100001];
void add(int from,int to){
a[++cnt].nxt=head[from];
a[cnt].to=to;
head[from]=cnt;
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>From>>To;
ans[i]=From;
add(From,To);
}
for(int i=1;i<=n;i++){
for(int j=head[i];j!=0;j=a[j].nxt){
ans[i]=max(ans[i],a[j].to);
}
}
for(int i=1;i<=n;i++){
cout<<ans[i]<<" ";
}
}