#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a),_b=(b);i<=_b;i=i+1)
#define FORD(i,b,a) for (int i=(b),_a=(a);i>=_a;i=i-1)
#define REP(i,n) for (int i=0,_n=(n);i<_n;i=i+1)
#define FORE(i,v) for (__typeof((v).begin()) i=(v).begin();i!=(v).end();i++)
#define ALL(v) (v).begin(),(v).end()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
#define double db
typedef long long ll;
typedef pair<int,int> PII;
const ll mod=1000000007;
ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
const int MAXN = 1E4+3;
const int oo = 1e9+3;
int n, m, s, u, v, res, bac[MAXN],adj[MAXN][MAXN];
bool ok[MAXN];
queue<int> q;
vector<int> a[MAXN];
int main() {
#ifndef ONLINE_JUDGE
freopen("test.inp", "r", stdin);
freopen("test.out", "w", stdout);
#endif
cin >> n >> m >> s;
FOR(i,1,m) {
cin >> u >> v;
if (!adj[u][v])
a[u].push_back(v);
adj[u][v] = 1;
}
q.push(s); bac[s] = 1;
while (!q.empty()) {
u = q.front();
q.pop();
for(int i=0; i<a[u].size(); i++)
{
v = a[u][i];
if (!bac[v])
{
if (ok[u]) ok[v] = 1;
bac[v] = bac[u] + 1;
q.push(v);
}
else
if (bac[v] == bac[u] + 1) ok[v] = 1;
}
}
FOR(i,1,n) if (ok[i]) res++;
cout << res;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRk9SKGksYSxiKSBmb3IgKGludCBpPShhKSxfYj0oYik7aTw9X2I7aT1pKzEpCiNkZWZpbmUgRk9SRChpLGIsYSkgZm9yIChpbnQgaT0oYiksX2E9KGEpO2k+PV9hO2k9aS0xKQojZGVmaW5lIFJFUChpLG4pIGZvciAoaW50IGk9MCxfbj0obik7aTxfbjtpPWkrMSkKI2RlZmluZSBGT1JFKGksdikgZm9yIChfX3R5cGVvZigodikuYmVnaW4oKSkgaT0odikuYmVnaW4oKTtpIT0odikuZW5kKCk7aSsrKQojZGVmaW5lIEFMTCh2KSAodikuYmVnaW4oKSwodikuZW5kKCkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIFNaKHgpICgoaW50KSh4KS5zaXplKCkpCiNkZWZpbmUgZG91YmxlIGRiCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gUElJOwpjb25zdCBsbCBtb2Q9MTAwMDAwMDAwNzsKbGwgcG93bW9kKGxsIGEsbGwgYikge2xsIHJlcz0xO2ElPW1vZDsgYXNzZXJ0KGI+PTApOyBmb3IoO2I7Yj4+PTEpe2lmKGImMSlyZXM9cmVzKmElbW9kO2E9YSphJW1vZDt9cmV0dXJuIHJlczt9CmNvbnN0IGludCBNQVhOID0gMUU0KzM7CmNvbnN0IGludCBvbyA9IDFlOSszOwoKaW50IG4sIG0sIHMsIHUsIHYsIHJlcywgYmFjW01BWE5dLGFkaltNQVhOXVtNQVhOXTsKYm9vbCBva1tNQVhOXTsKcXVldWU8aW50PiBxOwp2ZWN0b3I8aW50PiBhW01BWE5dOwoKaW50IG1haW4oKSB7CiAgICAJI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIAlmcmVvcGVuKCJ0ZXN0LmlucCIsICJyIiwgc3RkaW4pOwogICAgCWZyZW9wZW4oInRlc3Qub3V0IiwgInciLCBzdGRvdXQpOwogICAgCSNlbmRpZgogICAgY2luID4+IG4gPj4gbSA+PiBzOwogICAgRk9SKGksMSxtKSB7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBpZiAoIWFkalt1XVt2XSkKICAgICAgICAgICAgYVt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgYWRqW3VdW3ZdID0gMTsKICAgIH0KICAgIHEucHVzaChzKTsgYmFjW3NdID0gMTsKICAgIHdoaWxlICghcS5lbXB0eSgpKSB7CiAgICAgICAgdSA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIGZvcihpbnQgaT0wOyBpPGFbdV0uc2l6ZSgpOyBpKyspCiAgICAgICAgewogICAgICAgICAgICB2ID0gYVt1XVtpXTsKICAgICAgICAgICAgaWYgKCFiYWNbdl0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChva1t1XSkgb2tbdl0gPSAxOwogICAgICAgICAgICAgICAgYmFjW3ZdID0gYmFjW3VdICsgMTsKICAgICAgICAgICAgICAgIHEucHVzaCh2KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIChiYWNbdl0gPT0gYmFjW3VdICsgMSkgb2tbdl0gPSAxOwogICAgICAgIH0KICAgIH0KICAgIEZPUihpLDEsbikgaWYgKG9rW2ldKSByZXMrKzsKICAgIGNvdXQgPDwgcmVzOwoJcmV0dXJuIDA7Cn0K