#include<bits/stdc++.h>
using namespace std;
struct node{
int a,b;
}o[100005];
int cmp1(node x,node y){
if(x.a!=y.a) return x.a<y.a;
else return x.b<y.b;
}
int cmp2(node x,node y){
if(x.a==y.a)
return x.b==y.b;
else return 0;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>o[i].a>>o[i].b;
sort(o+1,o+n+1,cmp1);
int n0=unique(o+1,o+n+1,cmp2)-o-1;
int l,len=0;
for(int i=1;i<=n0;i++){
bool flag=0;
int c=o[i].a,j=i;
while(o[i].a==o[j].a&&j<=n0){
l=j-i+1;
len=max(len,l);
if(o[j].b-o[i].b<n)
j++;
else
i++;
}
i=j-1;
}
cout<<n-len;
return 0;
}