#include<bits/stdc++.h>
using namespace std;
int solve(int i,int j,vector<vector<int>> &dp,vector<int> &l,vector<int> &r){
if(i==0) return dp[i][j]=1;
if(i<0) return 0;
if(dp[i][j]!=-1) return dp[i][j];
//Take
if(i + r[i] +1 >= j && j!=-1) return dp[i][j] = solve(i-1,j,dp,l,r);
int option1 = 1 + solve(i-l[i]-1,i,dp,l,r);
//NotTake
int option2 = solve(i-1,j,dp,l,r);
return dp[i][j] = max(option1,option2);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
vector<int> l(n);
vector<int> r(n);
int ans=0;
vector<vector<int>> dp(n,vector<int> (n,-1));
for(int i=0;i<n;i++){
cin >> l[i] >> r[i];
}
for(int i=0;i<n;i++){
ans = max(ans,solve(i,-1,dp,l,r));
}
cout<<ans<<"\n";
}