#include<bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, m, dis[N], S;
vector<int> dsk[N];
queue<int> Q;
pair<int, int> a[N];
int main() {
// freopen("test.inp", "r", stdin);
// freopen("test.out", "w", stdout);
cin >> n >> m >> S;
/// n là số lượng đỉnh
/// m là số lượng cạnh
for (int i = 1; i <= m; i++) {
int u, v;
cin >> u >> v;
/// người ta đang cho em cạnh nối từ u tới v
dsk[u].push_back(v);
dsk[v].push_back(u);
}
for (int i = 1; i <= n; i++)
dis[i] = -1;
dis[S] = 0;
Q.push(S);
while (Q.size()) {
int u = Q.front();
/// lay gia tri đầu tiên trong queue
Q.pop();
/// xoa dinh o dau
for (int v : dsk[u])
if (dis[v] == -1) {
dis[v] = dis[u] + 1;
Q.push(v);
}
}
for (int i = 1; i <= n; i++) {
a[i].first = dis[i];
a[i].second = i;
}
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
int kc = a[i].first;
int dinh = a[i].second;
if (kc != -1)
cout << dinh << " " << kc << endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDEwMDAwNTsKaW50IG4sIG0sIGRpc1tOXSwgUzsKdmVjdG9yPGludD4gZHNrW05dOwpxdWV1ZTxpbnQ+IFE7CgpwYWlyPGludCwgaW50PiBhW05dOwoKaW50IG1haW4oKSB7Ci8vICAgIGZyZW9wZW4oInRlc3QuaW5wIiwgInIiLCBzdGRpbik7Ci8vICAgIGZyZW9wZW4oInRlc3Qub3V0IiwgInciLCBzdGRvdXQpOwoKICAgIGNpbiA+PiBuID4+IG0gPj4gUzsKICAgIC8vLyBuIGzDoCBz4buRIGzGsOG7o25nIMSR4buJbmgKCiAgICAvLy8gbSBsw6Agc+G7kSBsxrDhu6NuZyBj4bqhbmgKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBpbnQgdSwgdjsKCiAgICAgICAgY2luID4+IHUgPj4gdjsKCiAgICAgICAgLy8vIG5nxrDhu51pIHRhIMSRYW5nIGNobyBlbSBj4bqhbmggbuG7kWkgdOG7qyB1IHThu5tpIHYKCiAgICAgICAgZHNrW3VdLnB1c2hfYmFjayh2KTsKCiAgICAgICAgZHNrW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgZGlzW2ldID0gLTE7CgogICAgZGlzW1NdID0gMDsKICAgIFEucHVzaChTKTsKCiAgICB3aGlsZSAoUS5zaXplKCkpIHsKICAgICAgICBpbnQgdSA9IFEuZnJvbnQoKTsKICAgICAgICAvLy8gbGF5IGdpYSB0cmkgxJHhuqd1IHRpw6puIHRyb25nIHF1ZXVlCgogICAgICAgIFEucG9wKCk7CiAgICAgICAgLy8vIHhvYSBkaW5oIG8gZGF1CgogICAgICAgIGZvciAoaW50IHYgOiBkc2tbdV0pCiAgICAgICAgICAgIGlmIChkaXNbdl0gPT0gLTEpIHsKICAgICAgICAgICAgICAgIGRpc1t2XSA9IGRpc1t1XSArIDE7CiAgICAgICAgICAgICAgICBRLnB1c2godik7CiAgICAgICAgICAgIH0KICAgIH0KCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBhW2ldLmZpcnN0ID0gZGlzW2ldOwogICAgICAgIGFbaV0uc2Vjb25kID0gaTsKICAgIH0KCiAgICBzb3J0KGEgKyAxLCBhICsgbiArIDEpOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGludCBrYyA9IGFbaV0uZmlyc3Q7CiAgICAgICAgaW50IGRpbmggPSBhW2ldLnNlY29uZDsKCiAgICAgICAgaWYgKGtjICE9IC0xKQogICAgICAgICAgICBjb3V0IDw8IGRpbmggPDwgIiAiIDw8IGtjIDw8IGVuZGw7CiAgICB9CgoKfQo=