#include #include using namespace std; int dg[200009], ds[200009], sz[200009]; const int m = 200000; int uf(int n) { if (ds[n] == n) return n; return ds[n] = uf(ds[n]); } int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; for (int i = 1; i <= m; i++) { ds[i] = i; sz[i] = 1; } for (int i = 1; i <= n; i++) { int a, b; cin >> a >> b; dg[a]++; dg[b]--; int ua = uf(a), ub = uf(b); if (ua != ub) { ds[ub] = ua; sz[ua] += sz[ub]; } } int c = 0, s0 = 0, s1 = 0, sp = 0; for (int i = 1; i <= m; i++) { if (ds[i] == i && sz[i] > 1) { c++; sp = sz[i]; } if (dg[i] == -1) s0++; if (dg[i] == 1) s1++; if (dg[i] < -1 || dg[i] > 1 || c > 1) { cout << 0 << '\n'; return 0; } } if (s0 == 1 && s1 == 1) cout << 1 << '\n'; else if (s0 == 0 && s1 == 0) cout << sp << '\n'; else cout << 0 << '\n'; return 0; }