// ~~ icebear ~~
#include <bits/stdc++.h>
using namespace std;
int n, m, s, t;
vector<int> G[200050];
int dist[200050];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> m >> s;
while(m--) {
int u, v;
cin >> u >> v;
G[u].push_back(v);
G[v].push_back(u);
}
for(int i = 1; i <= n; i++) dist[i] = 1000000000;
dist[s] = 0;
queue<int> q; // lưu xem là những đỉnh nào sẽ cần đi cập nhật
q.push(s);
while(!q.empty()) {
int u = q.front(); q.pop(); // lấy ra đỉnh ở đầu hàng đợi (đây chính là đỉnh có khoảng cách tới s nhỏ nhất hiện tại)
for(int v : G[u]) if (dist[v] > dist[u] + 1) {
dist[v] = dist[u] + 1; // s->v khi đi qua đỉnh u và cạnh (u, v) sẽ tối ưu hơn
q.push(v);
}
}
int ans = 0;
for(int i = 1; i <= n; i++) if (dist[i] != 1000000000)
ans++;
cout << ans;
return 0;
}
Ly8gfn4gaWNlYmVhciB+fgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG4sIG0sIHMsIHQ7CnZlY3RvcjxpbnQ+IEdbMjAwMDUwXTsKaW50IGRpc3RbMjAwMDUwXTsKCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgY2luID4+IG4gPj4gbSA+PiBzOwogICAgd2hpbGUobS0tKSB7CiAgICAgICAgaW50IHUsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBHW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBHW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBkaXN0W2ldID0gMTAwMDAwMDAwMDsKICAgIGRpc3Rbc10gPSAwOwogICAgcXVldWU8aW50PiBxOyAvLyBsxrB1IHhlbSBsw6Agbmjhu69uZyDEkeG7iW5oIG7DoG8gc+G6vSBj4bqnbiDEkWkgY+G6rXAgbmjhuq10CiAgICBxLnB1c2gocyk7CiAgICB3aGlsZSghcS5lbXB0eSgpKSB7CiAgICAgICAgaW50IHUgPSBxLmZyb250KCk7IHEucG9wKCk7IC8vIGzhuqV5IHJhIMSR4buJbmgg4bufIMSR4bqndSBow6BuZyDEkeG7o2kgKMSRw6J5IGNow61uaCBsw6AgxJHhu4luaCBjw7Mga2hv4bqjbmcgY8OhY2ggdOG7m2kgcyBuaOG7jyBuaOG6pXQgaGnhu4duIHThuqFpKQogICAgICAgIGZvcihpbnQgdiA6IEdbdV0pIGlmIChkaXN0W3ZdID4gZGlzdFt1XSArIDEpIHsKICAgICAgICAgICAgZGlzdFt2XSA9IGRpc3RbdV0gKyAxOyAvLyBzLT52IGtoaSDEkWkgcXVhIMSR4buJbmggdSB2w6AgY+G6oW5oICh1LCB2KSBz4bq9IHThu5FpIMawdSBoxqFuCiAgICAgICAgICAgIHEucHVzaCh2KTsKICAgICAgICB9CiAgICB9CiAgICBpbnQgYW5zID0gMDsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBpZiAoZGlzdFtpXSAhPSAxMDAwMDAwMDAwKQogICAgICAgIGFucysrOwogICAgY291dCA8PCBhbnM7CiAgICByZXR1cm4gMDsKfQo=