#include <bits/stdc++.h>
using namespace std;
int n, m, u, v;
int mmto[200100], mmnxt[200100], mmd[100100], mms[100100];
void dfs(int x) {
if(mms[x]==0) {
int q = mmd[x], maxx = x, r;
while(q!=0) {
dfs(mmto[q]);
if(mms[mmto[q]]>maxx) maxx = mms[mmto[q]];
q = mmnxt[q];
}
mms[x] = maxx;
}
}
int main() {
scanf("%d%d", &n, &m);
for(int i=1; i<=m; i++) {
scanf("%d%d", &u, &v);
mmto[i] = v;
mmnxt[i] = mmd[u];
mmd[u] = i;
}
for(int i=1; i<=n; i++) {
if(mms[i]==0) dfs(i);
printf("%d ", mms[i]);
}
return 0;
}