#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(x, s, t) for(llint (x) = (s); (x) <= (t); (x)++) #define chmin(x, y) (x) = min((x), (y)) #define chmax(x, y) (x) = max((x), (y)) #define all(x) (x).begin(),(x).end() #define inf 1e18 using namespace std; typedef long long llint; typedef pair P; typedef pair T; llint n; priority_queue, greater > Q; llint x[1005], y[1005]; bool used[1005]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i = 1; i <= n; i++) cin >> x[i] >> y[i]; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ if(i >= j) continue; Q.push(T((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]), P(i, j))); } } llint ans = 0; while(Q.size()){ llint x = Q.top().second.first, y = Q.top().second.second; Q.pop(); if(used[x] || used[y]) continue; if(x == 1 || y == 1) ans++; if(x != 1) used[x] = true; if(y != 1) used[y] = true; } cout << ans << endl; return 0; }