#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;
}
