#include <bits/stdc++.h>
using namespace std;
void DFS(int node, vector<vector<int>>& g, vector<int>& visited, vector<int>& parent){
cout << node << '\n';
visited[node] = 1;
for (auto &i : g[node]){
if(visited[i] == 0){
parent[i] = node;
DFS(i, g, visited, parent);
}
}
}
int main() {
int n,e;
cin >> n >> e;
vector<vector<int>> g(n+5);
for (int i = 0; i < e; i++){
int a, b;
cin >> a >> b;
g[a].push_back(b);
g[b].push_back(a);
}
int source;
cin >> source;
vector<int> visited(n+5, 0);
vector<int> parent(n+5, 0);
DFS(source, g, visited, parent);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIERGUyhpbnQgbm9kZSwgdmVjdG9yPHZlY3RvcjxpbnQ+PiYgZywgdmVjdG9yPGludD4mIHZpc2l0ZWQsIHZlY3RvcjxpbnQ+JiBwYXJlbnQpewoJCgljb3V0IDw8IG5vZGUgPDwgJ1xuJzsKCXZpc2l0ZWRbbm9kZV0gPSAxOwoJCglmb3IgKGF1dG8gJmkgOiBnW25vZGVdKXsKCQlpZih2aXNpdGVkW2ldID09IDApewoJCQlwYXJlbnRbaV0gPSBub2RlOwoJCQlERlMoaSwgZywgdmlzaXRlZCwgcGFyZW50KTsKCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJCglpbnQgbixlOwoJY2luID4+IG4gPj4gZTsKCQoJdmVjdG9yPHZlY3RvcjxpbnQ+PiBnKG4rNSk7CgkKCWZvciAoaW50IGkgPSAwOyBpIDwgZTsgaSsrKXsKCQlpbnQgYSwgYjsKCQljaW4gPj4gYSA+PiBiOwoJCWdbYV0ucHVzaF9iYWNrKGIpOwoJCWdbYl0ucHVzaF9iYWNrKGEpOwoJfQoJCglpbnQgc291cmNlOyAKICAgIGNpbiA+PiBzb3VyY2U7CgkKCXZlY3RvcjxpbnQ+IHZpc2l0ZWQobis1LCAwKTsKCXZlY3RvcjxpbnQ+IHBhcmVudChuKzUsIDApOwoJCglERlMoc291cmNlLCBnLCB2aXNpdGVkLCBwYXJlbnQpOwoJCglyZXR1cm4gMDsKfQ==