//Rahman ve Rahim olan Allah'ın adıyla
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ins insert
#define fi first
#define se second
#define int long long
#define mid (st+end)/2
#define spc <<" "<<
#define en <<"\n"
#define amin main
vector<int>tr;
int qry(int nd,int st,int end,int l,int r){
if(r<st||end<l) return 0;
if(l<=st&&end<=r){return tr[nd];}
return max(qry(nd*2+2,mid+1,end,l,r),qry(nd*2+1,st,mid,l,r));
}
void updt(int nd,int st,int end,int k,int n){
if(k<st||end<k||end<st) return;
if(st==end){tr[nd]=max(n,tr[nd]);return;}
updt(nd*2+1,st,mid,k,n);
updt(nd*2+2,mid+1,end,k,n);
tr[nd]=max(tr[nd*2+1],tr[nd*2+2]);
}
int32_t amin(){
ios_base::sync_with_stdio(false);cin.tie(0);
//freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
int n;cin>>n;vector<array<int,2>>tul(n);
for(int i=0;i<n;i++){
cin>>tul[i][0]>>tul[i][1];
tul[i][0]=min(i,tul[i][0]);
tul[i][1]=min(n-i,tul[i][1]);
}tr.resize(4*(n+1)+5,0);int ans=0;vector<vector<pair<int,int>>>upd(n+1);
for(int i=0;i<n;i++){
int cur=qry(0,0,n,0,i-tul[i][0]-1)+1;ans=max(ans,cur);upd[i+tul[i][1]].pb({i,cur});
for(auto it:upd[i]){
updt(0,0,n,it.fi,it.se);
}
}cout<<ans;
}