#include <cstdio>
#include <algorithm>
#include <deque>
#include <vector>
constexpr int MAXN = 1004;
bool D[MAXN][MAXN];
std::vector<int> E[MAXN];
int H[MAXN];
bool visited[MAXN];
int main() {
int N, M, S;
scanf("%d%d%d", &N, &M, &S);
for (int i = 0; i < M; ++i) {
int x, y;
scanf("%d%d", &x, &y);
D[x][y] = D[y][x] = true;
}
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= N; ++j) {
if (D[i][j]) E[i].push_back(j);
}
}
// DFS
{
std::vector<int> V;
V.push_back(S);
do {
const int now = V.back();
int &np = H[now];
if (!visited[now]) {
printf("%d ", now);
visited[now] = true;
}
while (np < (int)E[now].size() && visited[E[now][np]]) ++np;
if (np == (int)E[now].size()) V.pop_back();
else V.push_back(E[now][np++]);
} while (V.size());
}
puts("");
std::fill(visited, &visited[N + 1], false);
// BFS
{
std::deque<int> Q;
Q.push_back(S);
visited[S] = true;
do {
const int now = Q.front();
Q.pop_front();
printf("%d ", now);
for (const int &e: E[now]) {
if (visited[e]) continue;
visited[e] = true;
Q.push_back(e);
}
} while (Q.size());
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8dmVjdG9yPgoKY29uc3RleHByIGludCBNQVhOID0gMTAwNDsKCmJvb2wgRFtNQVhOXVtNQVhOXTsKc3RkOjp2ZWN0b3I8aW50PiBFW01BWE5dOwoKaW50IEhbTUFYTl07CmJvb2wgdmlzaXRlZFtNQVhOXTsKCmludCBtYWluKCkgewoJaW50IE4sIE0sIFM7CgoJc2NhbmYoIiVkJWQlZCIsICZOLCAmTSwgJlMpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBNOyArK2kpIHsKCQlpbnQgeCwgeTsKCQlzY2FuZigiJWQlZCIsICZ4LCAmeSk7CgkJRFt4XVt5XSA9IERbeV1beF0gPSB0cnVlOwoJfQoKCWZvciAoaW50IGkgPSAxOyBpIDw9IE47ICsraSkgewoJCWZvciAoaW50IGogPSAxOyBqIDw9IE47ICsraikgewoJCQlpZiAoRFtpXVtqXSkgRVtpXS5wdXNoX2JhY2soaik7CgkJfQoJfQoKCS8vIERGUwoJewoJCXN0ZDo6dmVjdG9yPGludD4gVjsKCQlWLnB1c2hfYmFjayhTKTsKCQlkbyB7CgkJCWNvbnN0IGludCBub3cgPSBWLmJhY2soKTsKCQkJaW50ICZucCA9IEhbbm93XTsKCQkJaWYgKCF2aXNpdGVkW25vd10pIHsKCQkJCXByaW50ZigiJWQgIiwgbm93KTsKCQkJCXZpc2l0ZWRbbm93XSA9IHRydWU7CgkJCX0KCQkJd2hpbGUgKG5wIDwgKGludClFW25vd10uc2l6ZSgpICYmIHZpc2l0ZWRbRVtub3ddW25wXV0pICsrbnA7CgkJCWlmIChucCA9PSAoaW50KUVbbm93XS5zaXplKCkpIFYucG9wX2JhY2soKTsKCQkJZWxzZSBWLnB1c2hfYmFjayhFW25vd11bbnArK10pOwoJCX0gd2hpbGUgKFYuc2l6ZSgpKTsKCX0KCglwdXRzKCIiKTsKCXN0ZDo6ZmlsbCh2aXNpdGVkLCAmdmlzaXRlZFtOICsgMV0sIGZhbHNlKTsKCgkvLyBCRlMKCXsKCQlzdGQ6OmRlcXVlPGludD4gUTsKCQlRLnB1c2hfYmFjayhTKTsKCQl2aXNpdGVkW1NdID0gdHJ1ZTsKCQlkbyB7CgkJCWNvbnN0IGludCBub3cgPSBRLmZyb250KCk7CgkJCVEucG9wX2Zyb250KCk7CgkJCXByaW50ZigiJWQgIiwgbm93KTsKCgkJCWZvciAoY29uc3QgaW50ICZlOiBFW25vd10pIHsKCQkJCWlmICh2aXNpdGVkW2VdKSBjb250aW51ZTsKCQkJCXZpc2l0ZWRbZV0gPSB0cnVlOwoJCQkJUS5wdXNoX2JhY2soZSk7CgkJCX0KCQl9IHdoaWxlIChRLnNpemUoKSk7Cgl9Cn0K