#include <bits/stdc++.h>
using namespace std;
struct node
{
int id;
node* next;
node(int i, node* n) { id =i , next = n; }
} *Start[100005] , *End[100005];
int main()
{
int n,q;
cin>>n>>q;
for (int i=1 ; i<=n ; i++) { Start[i] = End[i] = new node(i,NULL); }
for (int i=1 ; i<=q ; i++)
{
int s,t;
cin>>s>>t;
End[s]->next = Start[t];
Start[t] = Start[s];
if (End[t]==NULL) End[t] = End[s];
Start[s] = End[s] = NULL;
}
int a[100005];
for (int i=1 ; i<=n ; i++)
{
node* p = Start[i];
while (p) a[p->id] = i , p = p->next;
}
for (int i=1 ; i<=n ; i++) cout<<a[i]<<" ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUKewoJaW50IGlkOwoJbm9kZSogbmV4dDsKCQoJbm9kZShpbnQgaSwgbm9kZSogbikgeyBpZCA9aSAsIG5leHQgPSBuOyB9Cn0gKlN0YXJ0WzEwMDAwNV0gLCAqRW5kWzEwMDAwNV07CgppbnQgbWFpbigpCnsKCWludCBuLHE7CgkKCWNpbj4+bj4+cTsKCWZvciAoaW50IGk9MSA7IGk8PW4gOyBpKyspIHsgU3RhcnRbaV0gPSBFbmRbaV0gPSBuZXcgbm9kZShpLE5VTEwpOyB9CgkKCWZvciAoaW50IGk9MSA7IGk8PXEgOyBpKyspCgl7CgkJaW50IHMsdDsKCQljaW4+PnM+PnQ7CgkJRW5kW3NdLT5uZXh0ID0gU3RhcnRbdF07CgkJU3RhcnRbdF0gPSBTdGFydFtzXTsKCQlpZiAoRW5kW3RdPT1OVUxMKSBFbmRbdF0gPSBFbmRbc107CgkJU3RhcnRbc10gPSBFbmRbc10gPSBOVUxMOwoJfQoJCglpbnQgYVsxMDAwMDVdOwoJZm9yIChpbnQgaT0xIDsgaTw9biA7IGkrKykKCXsKCQlub2RlKiBwID0gU3RhcnRbaV07CgkJd2hpbGUgKHApIGFbcC0+aWRdID0gaSAsIHAgPSBwLT5uZXh0OwoJfQoJCglmb3IgKGludCBpPTEgOyBpPD1uIDsgaSsrKSBjb3V0PDxhW2ldPDwiICI7CgkKCXJldHVybiAwOwp9