#include<stdio.h>
struct xy { int x, y; }a[1212];
int sb(xy a, xy b) { return (a.x < b.x) * 2 + (a.y < b.y); }
int main() {
int n, b,i, j, k, ans = 1e9;
scanf("%d", &n);
for (i = 0; i < n; i++)scanf("%d%d", &a[i].x, &a[i].y);
for (i = 0; i < n; i++) for (k = 0; k < n; k++){
int cnt[4] = { 0, }, res = 0;
for (j = 0; j < n; j++) cnt[sb({ a[i].x + 1,a[k].y + 1 }, a[j])]++;
for (j = 0; j < 4; j++)if (res < cnt[j])res = cnt[j];
if (ans > res)ans = res;
}
printf("%d", ans);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4Kc3RydWN0IHh5IHsgaW50IHgsIHk7IH1hWzEyMTJdOwppbnQgc2IoeHkgYSwgeHkgYikgeyByZXR1cm4gKGEueCA8IGIueCkgKiAyICsgKGEueSA8IGIueSk7IH0KaW50IG1haW4oKSB7CglpbnQgbiwgYixpLCBqLCBrLCBhbnMgPSAxZTk7CglzY2FuZigiJWQiLCAmbik7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKXNjYW5mKCIlZCVkIiwgJmFbaV0ueCwgJmFbaV0ueSk7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSBmb3IgKGsgPSAwOyBrIDwgbjsgaysrKXsKCQlpbnQgY250WzRdID0geyAwLCB9LCByZXMgPSAwOwoJCWZvciAoaiA9IDA7IGogPCBuOyBqKyspIGNudFtzYih7IGFbaV0ueCArIDEsYVtrXS55ICsgMSB9LCBhW2pdKV0rKzsKCQlmb3IgKGogPSAwOyBqIDwgNDsgaisrKWlmIChyZXMgPCBjbnRbal0pcmVzID0gY250W2pdOwoJCWlmIChhbnMgPiByZXMpYW5zID0gcmVzOwoJfQoJcHJpbnRmKCIlZCIsIGFucyk7CglyZXR1cm4gMDsKfQ==