#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<queue>
#include<cmath>
#include<algorithm>
using namespace std;
int cnt=1;
int head[10000000];
struct node{
int u,v,w,next;
}e[10000000];
int maxx=-1;
void add(int u,int v){
e[cnt].u=u;
e[cnt].v=v;
e[cnt].next=head[u];
head[u]=cnt++;
return;
}
int main(){
int n,m;
cin >>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin >>u>>v;
add(u,v);
}
for(int i=1;i<=n;i++){
int maxx=i;
for(int j=head[i];j;j=head[e[j].v]){
maxx=max(e[j].v,e[j].u);
}
cout <<maxx<<" ";
}
return 0;
}