#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5, M = 2e5 + 5;
int n, m, u, v;
vector<int> adj[N];
bool vis[N];
void DFS(int u) { // o(n + m)
vis[u] = true;
for (int v : adj[u]) {
if (!vis[v]) {
cout << v << " ";
DFS(v);
}
}
}
int main() {
scanf("%d %d", &n, &m);
for (int i = 0; i < m; i++) {
scanf("%d %d", &u, &v);
adj[u].push_back(v);
//adj[v].push_back(u);
}
DFS(0);
return 0;
}
/*
Samples:
7 6
0 1
1 2
2 5
2 3
2 6
3 4
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAxZTUgKyA1LCBNID0gMmU1ICsgNTsKCmludCBuLCBtLCB1LCB2OwoKdmVjdG9yPGludD4gYWRqW05dOwpib29sIHZpc1tOXTsKCnZvaWQgREZTKGludCB1KSB7ICAgICAgIC8vIG8obiArIG0pCiAgdmlzW3VdID0gdHJ1ZTsKICBmb3IgKGludCB2IDogYWRqW3VdKSB7CiAgICBpZiAoIXZpc1t2XSkgewogICAgICBjb3V0IDw8IHYgPDwgIiAiOyAKICAgICAgREZTKHYpOwogICAgfQogIH0KfQoKaW50IG1haW4oKSB7CiAgc2NhbmYoIiVkICVkIiwgJm4sICZtKTsKICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewogICAgc2NhbmYoIiVkICVkIiwgJnUsICZ2KTsKICAgIGFkalt1XS5wdXNoX2JhY2sodik7CiAgICAvL2Fkalt2XS5wdXNoX2JhY2sodSk7CiAgfQogIERGUygwKTsKICByZXR1cm4gMDsKfQoKLyoKU2FtcGxlczoKNyA2CjAgMQoxIDIKMiA1CjIgMwoyIDYKMyA0Ciov