#include using namespace std; template inline T gcd(T a, T b) { return __gcd(a, b); } template inline T lcm(T a, T b) { return a / gcd(a, b) * b; } template inline T floor(T a, T b) { return floor(a / b) * b <= a ? floor(a / b) : floor(a / b) - 1; } template inline T ceil(T a, T b) { return floor(a + b - 1, b); } template inline T round(T a, T b) { return floor(a + b / 2); } template inline T mod(T a, T b) { return a - floor(a, b) * b; } template inline T factorial(T n) { return n <= 1 ? 1 : factorial(n - 1) * n; } int main() { int n; cin >> n; map, vector>> c; int res = 0; for (int i = 0; i < n; ++i) { int x, y; cin >> x >> y; int a = floor(x, 20), b = floor(y, 20); bool ok = true; for (int i = a - 1; i <= a + 1; ++i) { for (int j = b - 1; j <= b + 1; ++j) { for (auto k : c[make_pair(i, j)]) { if (pow(x - k.first, 2) + pow(y - k.second, 2) < 400) ok = false; } } } if (ok) { c[make_pair(a, b)].emplace_back(make_pair(x, y)); ++res; } } cout << res << endl; }