const
fi='stable.inp';
fo='stable.out';
maxn=10000;
maxm=50000;
var
link,head,ke : array[1..maxm] of longint;
i,j,n,m,st,ans,s,dau,cuoi,u,v : longint;
q,bac : array[1..maxn] of longint;
ok : array[1..maxn] of boolean;
a : array[1..maxn,1..maxn] of boolean;
procedure push(x : longint);
begin
inc(cuoi);
q[cuoi] := x;
end;
procedure add(i,u,v : longint);
begin
link[i] := head[u];
head[u] := i;
ke[i] := v;
end;
begin
// assign(input,fi);reset(input);
// assign(output,fo);rewrite(output);
read(n,m,s);
for i := 1 to m do
begin
read(u,v);
if a[u,v] = false then
add(i,u,v);
a[u,v] := true;
end;
dau := 1; cuoi := 0;
push(s);
bac[s] := 1;
while (dau <= cuoi) do
begin
u := q[dau];
inc(dau);
i := head[u];
while i <> 0 do
begin
v := ke[i];
if bac[v] = 0 then
begin
if ok[u] then ok[v] := true;
bac[v] := bac[u] + 1;
push(v);
end
else
if bac[v] = bac[u] + 1 then
begin
ok[v] := true;
end;
i := link[i];
end;
end;
for i := 1 to n do
if ok[i] then inc(ans);
writeln(ans);
// close(input);close(output);
end.
Y29uc3QKICBmaT0nc3RhYmxlLmlucCc7CiAgZm89J3N0YWJsZS5vdXQnOwogIG1heG49MTAwMDA7CiAgbWF4bT01MDAwMDsKdmFyCiAgbGluayxoZWFkLGtlIDogYXJyYXlbMS4ubWF4bV0gb2YgbG9uZ2ludDsKICBpLGosbixtLHN0LGFucyxzLGRhdSxjdW9pLHUsdiA6IGxvbmdpbnQ7CiAgcSxiYWMgOiBhcnJheVsxLi5tYXhuXSBvZiBsb25naW50OwogIG9rIDogYXJyYXlbMS4ubWF4bl0gb2YgYm9vbGVhbjsKICBhIDogYXJyYXlbMS4ubWF4biwxLi5tYXhuXSBvZiBib29sZWFuOwpwcm9jZWR1cmUgcHVzaCh4IDogbG9uZ2ludCk7CiAgYmVnaW4KICAgIGluYyhjdW9pKTsKICAgIHFbY3VvaV0gOj0geDsKICBlbmQ7CnByb2NlZHVyZSBhZGQoaSx1LHYgOiBsb25naW50KTsKICBiZWdpbgogICAgbGlua1tpXSA6PSBoZWFkW3VdOwogICAgaGVhZFt1XSA6PSBpOwogICAga2VbaV0gOj0gdjsKICBlbmQ7CmJlZ2luCi8vICBhc3NpZ24oaW5wdXQsZmkpO3Jlc2V0KGlucHV0KTsKLy8gIGFzc2lnbihvdXRwdXQsZm8pO3Jld3JpdGUob3V0cHV0KTsKICByZWFkKG4sbSxzKTsKICBmb3IgaSA6PSAxIHRvIG0gZG8KICAgIGJlZ2luCiAgICAgIHJlYWQodSx2KTsKICAgICAgaWYgYVt1LHZdID0gZmFsc2UgdGhlbgogICAgICBhZGQoaSx1LHYpOwogICAgICBhW3Usdl0gOj0gdHJ1ZTsKICAgIGVuZDsKICBkYXUgOj0gMTsgY3VvaSA6PSAwOwogIHB1c2gocyk7CiAgYmFjW3NdIDo9IDE7CiAgd2hpbGUgKGRhdSA8PSBjdW9pKSBkbwogICAgYmVnaW4KICAgICAgdSA6PSBxW2RhdV07CiAgICAgIGluYyhkYXUpOwogICAgICBpIDo9IGhlYWRbdV07CiAgICAgIHdoaWxlIGkgPD4gMCBkbwogICAgICAgIGJlZ2luCiAgICAgICAgICB2IDo9IGtlW2ldOwogICAgICAgICAgaWYgYmFjW3ZdID0gMCB0aGVuCiAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgaWYgb2tbdV0gdGhlbiBva1t2XSA6PSB0cnVlOwogICAgICAgICAgICAgIGJhY1t2XSA6PSBiYWNbdV0gKyAxOwogICAgICAgICAgICAgIHB1c2godik7CiAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbHNlCiAgICAgICAgICBpZiBiYWNbdl0gPSBiYWNbdV0gKyAxIHRoZW4KICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICBva1t2XSA6PSB0cnVlOwogICAgICAgICAgICBlbmQ7CiAgICAgICAgICBpIDo9IGxpbmtbaV07CiAgICAgICAgZW5kOwogICAgZW5kOwogIGZvciBpIDo9IDEgdG8gbiBkbwogICAgaWYgb2tbaV0gdGhlbiBpbmMoYW5zKTsKICB3cml0ZWxuKGFucyk7Ci8vICBjbG9zZShpbnB1dCk7Y2xvc2Uob3V0cHV0KTsKZW5kLgo=