#include<bits/stdc++.h>
using namespace std;
struct Camac{
int l,p;
};
bool acompare(Camac a,Camac b) { return a.p < b.p; }
int res(){
int d[10000],r[10000];
Camac c[10000];
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>c[i].l>>c[i].p;
sort(c,c+n,acompare);
for(int i=0;i<n;i++){
r[i]=1;
d[i]=c[i].p;
for(int j=0;j<i;j++)
if(d[j]<=c[i].p){
if(r[j]+1>r[i]){
r[i]=r[j]+1;
d[i]=max(c[i].p,d[j]+c[i].l);
}
if(r[j]==r[i]){
int k=d[j]+c[i].l;
if(d[i]>k)
d[i]=k;
}
}
}
int m=r[0];
for(int i=1;i<n;i++)
if(r[i]>m)
m=r[i];
return m;
}
int main(){
cout<<res();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IENhbWFjewogICAgaW50IGwscDsKfTsKYm9vbCBhY29tcGFyZShDYW1hYyBhLENhbWFjIGIpIHsgcmV0dXJuIGEucCA8IGIucDsgfQppbnQgcmVzKCl7CiAgICBpbnQgZFsxMDAwMF0sclsxMDAwMF07CiAgICBDYW1hYyBjWzEwMDAwXTsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICBjaW4+PmNbaV0ubD4+Y1tpXS5wOwogICAgc29ydChjLGMrbixhY29tcGFyZSk7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICByW2ldPTE7CiAgICAgICAgZFtpXT1jW2ldLnA7CiAgICAgICAgZm9yKGludCBqPTA7ajxpO2orKykKICAgICAgICAgICAgaWYoZFtqXTw9Y1tpXS5wKXsKICAgICAgICAgICAgICAgIGlmKHJbal0rMT5yW2ldKXsKICAgICAgICAgICAgICAgICAgICByW2ldPXJbal0rMTsKICAgICAgICAgICAgICAgICAgICBkW2ldPW1heChjW2ldLnAsZFtqXStjW2ldLmwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYocltqXT09cltpXSl7CiAgICAgICAgICAgICAgICAgICAgaW50IGs9ZFtqXStjW2ldLmw7CiAgICAgICAgICAgICAgICAgICAgaWYoZFtpXT5rKQogICAgICAgICAgICAgICAgICAgICAgICBkW2ldPWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgIH0KICAgIGludCBtPXJbMF07CiAgICBmb3IoaW50IGk9MTtpPG47aSsrKQogICAgICAgIGlmKHJbaV0+bSkKICAgICAgICAgICAgbT1yW2ldOwogICAgcmV0dXJuIG07Cn0KaW50IG1haW4oKXsKICAgIGNvdXQ8PHJlcygpOwogICAgcmV0dXJuIDA7Cn0=