#include <bits/stdc++.h>
using namespace std;
int ans=0;
queue<int> q;
int bfs(vector<int> v[],int vis[],int c)
{
while(!q.empty())
{
int x=q.front();
q.pop();
for(int i=0;i<v[x].size();i++)
{
int zz=v[x][i];
if(vis[zz]==1)
continue;
vis[zz]=1;
q.push(zz);
}
}
int max=0;
for(int i=1;i<c+1;i++)
{
if(vis[c]==0)
{
if(max>v[c].size())
max=c;
}
}
return max;
}
int main()
{
int c,m,s;
cin>>c>>m>>s;
vector<int>v[c+1];
for(int i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
v[x].push_back(y);
}
int vis[c+1];
for(int i=0;i<c+1;i++)
vis[i]=0;
while(1)
{
for(int j=0;j<v[s].size();j++)
{
if(vis[v[s][j]]==1)
continue;
vis[v[s][j]]=1;
q.push(v[s][j]);
}
int add=bfs(v,vis,c);
if(add==0)
break;
v[add].push_back(s);
ans++;
int flag=0;
for(int i=1;i<c+1;i++)
{
if(vis[i]==0)
{flag=1;
for(int j=1;j<c+1;j++)
{
vis[j]=0;
}
i=c+2;
}
}
if(flag==0)
break;
}
cout<<ans<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBhbnM9MDsKcXVldWU8aW50PiBxOwppbnQgYmZzKHZlY3RvcjxpbnQ+IHZbXSxpbnQgdmlzW10saW50IGMpCnsKICAgd2hpbGUoIXEuZW1wdHkoKSkKICAgewogICAJIGludCB4PXEuZnJvbnQoKTsKICAgCSBxLnBvcCgpOwogICAJIGZvcihpbnQgaT0wO2k8dlt4XS5zaXplKCk7aSsrKQogICAJIHsgICAgCiAgIAkgCWludCB6ej12W3hdW2ldOwogICAJIAlpZih2aXNbenpdPT0xKQogICAJIAkJY29udGludWU7CiAgIAkgCXZpc1t6el09MTsKICAgCSAJcS5wdXNoKHp6KTsKICAgCSB9CiAgIH0KICAgaW50IG1heD0wOwogICBmb3IoaW50IGk9MTtpPGMrMTtpKyspCiAgIHsKICAgCSBpZih2aXNbY109PTApCiAgIAkgewogICAJIAlpZihtYXg+dltjXS5zaXplKCkpCiAgIAkgCQltYXg9YzsKICAgCSB9CiAgIH0KICAgcmV0dXJuIG1heDsKfQppbnQgbWFpbigpCnsKCWludCBjLG0sczsKCWNpbj4+Yz4+bT4+czsKCXZlY3RvcjxpbnQ+dltjKzFdOwoJZm9yKGludCBpPTA7aTxtO2krKykKCXsKCQlpbnQgeCx5OwoJCWNpbj4+eD4+eTsKCQl2W3hdLnB1c2hfYmFjayh5KTsKCX0KCWludCB2aXNbYysxXTsKCWZvcihpbnQgaT0wO2k8YysxO2krKykKCQl2aXNbaV09MDsKCXdoaWxlKDEpCgl7CgkJCgkgICAgICAKCQkJCWZvcihpbnQgaj0wO2o8dltzXS5zaXplKCk7aisrKQoJCQkJewogICAgICAgICAgICAgICAgICAgaWYodmlzW3Zbc11bal1dPT0xKQogICAgICAgICAgICAgICAgICAgCWNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgdmlzW3Zbc11bal1dPTE7CiAgICAgICAgICAgICAgICAgICBxLnB1c2godltzXVtqXSk7CgkJCQl9CgkJCQlpbnQgYWRkPWJmcyh2LHZpcyxjKTsKCQkJCWlmKGFkZD09MCkKCQkJCQlicmVhazsKCQkJCXZbYWRkXS5wdXNoX2JhY2socyk7CgkJCQlhbnMrKzsKCQkJICBpbnQgZmxhZz0wOwoJCSAgICBmb3IoaW50IGk9MTtpPGMrMTtpKyspCgkJICAgIHsKCQkgICAgCWlmKHZpc1tpXT09MCkKCQkgICAgCXtmbGFnPTE7CgkJICAgIAkJZm9yKGludCBqPTE7ajxjKzE7aisrKQoJCSAgICAJCXsKCQkgICAgCQkJdmlzW2pdPTA7CgkJICAgIAkJfQoJCSAgICAJCWk9YysyOwoJCSAgICAJfQoJCSAgICB9CgkJICAgIGlmKGZsYWc9PTApCgkJICAgIAlicmVhazsKCgoJCQoJfQoJY291dDw8YW5zPDxlbmRsOwoKfQ==