/// Author : Nguyễn Thái Sơn - K18 - KHMT - UIT
/// Training ICPC 2024
#include<bits/stdc++.h>
/// #pragma GCC optimize("O3,unroll-loops")
/// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define fi first
#define se second
#define TASK "test"
#define pb push_back
#define EL cout << endl
#define Ti20_ntson int main()
#define in(x) cout << x << endl
#define all(x) (x).begin(),(x).end()
#define getbit(x, i) (((x) >> (i)) & 1)
#define cntbit(x) __builtin_popcount(x)
#define FOR(i,l,r) for (int i = l; i <= r; i++)
#define FORD(i,l,r) for (int i = l; i >= r; i--)
#define Debug(a,n) for (int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> vii;
typedef unsigned long long ull;
typedef vector<vector<int>> vvi;
int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }
const int N = 1e5 + 5;
const int oo = INT_MAX;
const int mod = 1e9 + 7;
const int d4x[4] = {-1, 0, 1, 0} , d4y[4] = {0, 1, 0, -1};
const int d8x[8] = {-1, -1, 0, 1, 1, 1, 0, -1}, d8y[8] = {0, 1, 1, 1, 0, -1, -1, -1};
vector<int> dsk[N];
int n, m, S, dis[N];
bool visited[N];
inline void Read_Input() {
cin >> n >> m >> S;
for (int i = 1; i <= m; i++) {
int u, v;
cin >> u >> v;
dsk[u].push_back(v);
dsk[v].push_back(u);
}
}
inline void Solve() {
dis[S] = 0;
visited[S] = true;
queue<int> Q;
Q.push(S);
while (Q.size() != 0) {
int u = Q.front();
Q.pop();
for (int v : dsk[u]) if (visited[v] == false) {
visited[v] = true;
dis[v] = dis[u] + 1;
Q.push(v);
}
}
vector<pair<int, int>> V;
FOR(i, 1, n)
if (visited[i] == true)
V.push_back({dis[i], i});
sort(V.begin(), V.end());
/// first - khoang cach -> sort
/// second - ten dinh
for (pair<int, int> T : V)
cout << T.second << " " << T.first << endl;
}
Ti20_ntson {
// freopen(TASK".INP","r",stdin);
// freopen(TASK".OUT","w",stdout);
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int T = 1;
// cin >> T;
while (T -- ) {
Read_Input();
Solve();
}
}
Ly8vIEF1dGhvciA6IE5ndXnhu4VuIFRow6FpIFPGoW4gLSBLMTggLSBLSE1UIC0gVUlUCi8vLyBUcmFpbmluZyBJQ1BDIDIwMjQKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CgovLy8gI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zLHVucm9sbC1sb29wcyIpCi8vLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIsbHpjbnQscG9wY250IikKCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBUQVNLICJ0ZXN0IgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEVMIGNvdXQgPDwgZW5kbAojZGVmaW5lIFRpMjBfbnRzb24gaW50IG1haW4oKQojZGVmaW5lIGluKHgpIGNvdXQgPDwgeCA8PCBlbmRsCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQojZGVmaW5lIGdldGJpdCh4LCBpKSAoKCh4KSA+PiAoaSkpICYgMSkKI2RlZmluZSBjbnRiaXQoeCkgX19idWlsdGluX3BvcGNvdW50KHgpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IgKGludCBpID0gbDsgaSA8PSByOyBpKyspCiNkZWZpbmUgRk9SRChpLGwscikgZm9yIChpbnQgaSA9IGw7IGkgPj0gcjsgaS0tKQojZGVmaW5lIERlYnVnKGEsbikgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjb3V0IDw8IGFbaV0gPDwgIiAiOyBjb3V0IDw8IGVuZGwKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHZpaTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gdnZpOwppbnQgZmFzdE1heChpbnQgeCwgaW50IHkpIHsgcmV0dXJuICgoKHkteCk+PigzMi0xKSkmKHheeSkpXnk7IH0KCmNvbnN0IGludCBOID0gMWU1ICsgNTsKY29uc3QgaW50IG9vID0gSU5UX01BWDsKY29uc3QgaW50IG1vZCA9IDFlOSArIDc7CmNvbnN0IGludCBkNHhbNF0gPSB7LTEsIDAsIDEsIDB9ICwgZDR5WzRdID0gezAsIDEsIDAsIC0xfTsKY29uc3QgaW50IGQ4eFs4XSA9IHstMSwgLTEsIDAsIDEsIDEsIDEsIDAsIC0xfSwgZDh5WzhdID0gezAsIDEsIDEsIDEsIDAsIC0xLCAtMSwgLTF9OwoKdmVjdG9yPGludD4gZHNrW05dOwppbnQgbiwgbSwgUywgZGlzW05dOwpib29sIHZpc2l0ZWRbTl07CgppbmxpbmUgdm9pZCBSZWFkX0lucHV0KCkgewogICAgY2luID4+IG4gPj4gbSA+PiBTOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgaSsrKSB7CiAgICAgICAgaW50IHUsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBkc2tbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGRza1t2XS5wdXNoX2JhY2sodSk7CiAgICB9Cn0KCmlubGluZSB2b2lkIFNvbHZlKCkgewogICAgZGlzW1NdID0gMDsKICAgIHZpc2l0ZWRbU10gPSB0cnVlOwogICAgcXVldWU8aW50PiBROwogICAgUS5wdXNoKFMpOwoKICAgIHdoaWxlIChRLnNpemUoKSAhPSAwKSB7CiAgICAgICAgaW50IHUgPSBRLmZyb250KCk7CiAgICAgICAgUS5wb3AoKTsKCiAgICAgICAgZm9yIChpbnQgdiA6IGRza1t1XSkgaWYgKHZpc2l0ZWRbdl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgdmlzaXRlZFt2XSA9IHRydWU7CiAgICAgICAgICAgIGRpc1t2XSA9IGRpc1t1XSArIDE7CiAgICAgICAgICAgIFEucHVzaCh2KTsKICAgICAgICB9CiAgICB9CgogICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBWOwoKICAgIEZPUihpLCAxLCBuKQogICAgICAgIGlmICh2aXNpdGVkW2ldID09IHRydWUpCiAgICAgICAgICAgIFYucHVzaF9iYWNrKHtkaXNbaV0sIGl9KTsKCiAgICBzb3J0KFYuYmVnaW4oKSwgVi5lbmQoKSk7CgogICAgLy8vIGZpcnN0IC0ga2hvYW5nIGNhY2ggLT4gc29ydAoKICAgIC8vLyBzZWNvbmQgLSB0ZW4gZGluaAoKCiAgICBmb3IgKHBhaXI8aW50LCBpbnQ+IFQgOiBWKQogICAgICAgIGNvdXQgPDwgVC5zZWNvbmQgPDwgIiAiIDw8IFQuZmlyc3QgPDwgZW5kbDsKfQoKVGkyMF9udHNvbiB7Ci8vICAgIGZyZW9wZW4oVEFTSyIuSU5QIiwiciIsc3RkaW4pOwovLyAgICBmcmVvcGVuKFRBU0siLk9VVCIsInciLHN0ZG91dCk7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpbnQgVCA9IDE7Ci8vICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQgLS0gKSB7CiAgICAgICAgUmVhZF9JbnB1dCgpOwogICAgICAgIFNvbHZlKCk7CiAgICB9Cn0KCgo=