#include <bits/stdc++.h>
using namespace std;
int main(){
  int N;
  cin >> N;
  vector<int> H(N), W(N);
  for (int i = 0; i < N; i++){
    cin >> H[i] >> W[i];
    H[i]--;
    W[i]--;
  }
  int V = 200000;
  vector<vector<int>> E(V);
  for (int i = 0; i < N; i++){
    E[H[i]].push_back(W[i]);
    E[W[i]].push_back(H[i]);
  }
  vector<bool> used(V, false);
  used[H[0]] = true;
  queue<int> Q;
  Q.push(H[0]);
  while (!Q.empty()){
    int v = Q.front();
    Q.pop();
    for (int w : E[v]){
      if (!used[w]){
        used[w] = true;
        Q.push(w);
      }
    }
  }
  bool ok = true;
  for (int i = 0; i < N; i++){
    if (!used[H[i]] || !used[W[i]]){
      ok = false;
    }
  }
  if (!ok){
    cout << 0 << endl;
  } else {
    vector<int> in(V, 0), out(V, 0);
    for (int i = 0; i < N; i++){
      out[H[i]]++;
      in[W[i]]++;
    }
    int cnt1 = 0;
    int cnt2 = 0;
    for (int i = 0; i < V; i++){
      if (in[i] - out[i] >= 2){
        ok = false;
      }
      if (out[i] - in[i] >= 2){
        ok = false;
      }
      if (in[i] - out[i] == 1){
        cnt1++;
      }
      if (in[i] > 0){
        cnt2++;
      }
    }
    if (!ok){
      cout << 0 << endl;
    } else if (cnt1 >= 2){
      cout << 0 << endl;
    } else if (cnt1 == 1){
      cout << 1 << endl;
    } else {
      cout << cnt2 << endl;
    }
  }
}