#include<cstdio>
#include<algorithm>
using namespace std;
int n,ans,cnt;
int c[100010],v[100010],f[100010];
struct node{
int x,y;
friend bool operator!=(node a,node b){
return a.x!=b.x||a.y!=b.y;
}
}a[100010],b[100010];
bool cmp(node a,node b){
if(a.x!=b.x)return a.x<b.x;
return a.y<b.y;
}
void solve(){
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
if(a[i]!=a[i-1])b[++cnt]=a[i];
for(int i=1;i<=cnt;i++)
c[i]=a[i].x,v[i]=a[i].y;
f[1]=1;
for(int i=2;i<=cnt;i++){
int l=lower_bound(c+1,c+i+1,c[i])-c;
int pos=lower_bound(v+l,v+i,v[i]-n+1)-v;
f[i]=i-pos+1;
ans=max(ans,f[i]);
}
ans=n-ans;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i].x,&a[i].y);
solve();
printf("%d",ans);
return 0;
}