rt
#include<bits/stdc++.h>
using namespace std;
int m,n,ans;
struct sb
{
int l,r;
}a[100086];
vector<int>v[100086];
int f[100086];
bool cmp(sb x,sb y)
{
return x.r<y.r;
}
int main()
{
cin>>m;
for(int i=1;i<=m;i++)
{
int c,d;
cin>>c>>d;
if(c+d>=m)
{
ans++;
continue;
}
++n;
a[n].l=c+1;
a[n].r=m-d;
v[a[n].r].push_back(a[n].l);
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=m;i++)
{
map<int,int>mp;
for(int j=0;j<v[i].size();j++)
{
int x=v[i][j];
mp[x]++;
f[i]=max(f[i],f[x-1]+mp[x]);
}
f[i]=max(f[i],f[i-1]);
}
cout<<n-f[m]+ans;
return 0;
}