#include <bits/stdc++.h>
using namespace std;
void bfs(int s, int n, vector<int> adj[]) {
bool visited[n+1] = {};
queue<int> q;
q.push(s);
visited[s] = true;
while (!q.empty()) {
int u = q.front();
q.pop();
for (int v : adj[u]) {
if (!visited[v]) {
visited[v] = true;
q.push(v);
}
}
}
vector<int> res;
for (int i = 1; i <= n; i++) {
if (visited[i]) {
res.push_back(i);
}
}
for (int i = 0; i < res.size(); i++) {
cout << res[i] << ' ';
}
}
int main() {
int n, m, s;
cin >> n >> m >> s;
vector<int> adj[n+1];
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
bfs(s, n, adj);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGJmcyhpbnQgcywgaW50IG4sIHZlY3RvcjxpbnQ+IGFkaltdKSB7CiAgICBib29sIHZpc2l0ZWRbbisxXSA9IHt9OwoKICAgIHF1ZXVlPGludD4gcTsKICAgIHEucHVzaChzKTsKICAgIHZpc2l0ZWRbc10gPSB0cnVlOwoKICAgIHdoaWxlICghcS5lbXB0eSgpKSB7CiAgICAgICAgaW50IHUgPSBxLmZyb250KCk7IAogICAgICAgIHEucG9wKCk7CgogICAgICAgIGZvciAoaW50IHYgOiBhZGpbdV0pIHsKICAgICAgICAgICAgaWYgKCF2aXNpdGVkW3ZdKSB7CiAgICAgICAgICAgICAgICB2aXNpdGVkW3ZdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHEucHVzaCh2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICB2ZWN0b3I8aW50PiByZXM7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBpZiAodmlzaXRlZFtpXSkgewogICAgICAgICAgICByZXMucHVzaF9iYWNrKGkpOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlcy5zaXplKCk7IGkrKykgewogICAgICAgIGNvdXQgPDwgcmVzW2ldIDw8ICcgJzsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgbSwgczsKICAgIGNpbiA+PiBuID4+IG0gPj4gczsKCiAgICB2ZWN0b3I8aW50PiBhZGpbbisxXTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIGJmcyhzLCBuLCBhZGopOwoKICAgIHJldHVybiAwOwp9Cg==