#include <bits/stdc++.h>   using namespace std;   const long long int N = 5e3 + 7;   vector<vector<long long int> > v(N);   long long int cl[N];   void dfs(long long int s, long long int c) {     if (cl[s] == -1 || cl[s] == c) return;     cl[s] = c;     for (auto it = v[s].begin(); it != v[s].end(); it++) {       if (cl[*it] != c) dfs(*it, c);     }   }   int main() {     long long int n, m, s, i, j, k;     cin >> n >> m >> s;     memset(cl, 0, sizeof cl);     for (i = 0; i < m; i++) {       scanf( %lld%lld , &j, &k);       v[j].push_back(k);     }     dfs(s, -1);     for (i = 1; i <= n; i++) {       if (!cl[i]) dfs(i, i);     }     set<long long int> se;     for (i = 1; i <= n; i++) se.insert(cl[i]);     cout << se.size() - 1 << endl;     return 0;   }   