#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int n;
int dp[1002][3002];
int capacity[1002];
int weight[1002];
void init()
{
for(int i=0;i<1002;i++)
for(int j=0;j<3002;j++)
dp[i][j]=0;
}
int _max(int a,int b)
{
return a>b?a:b;
}
int _min(int a,int b)
{
return a<b?a:b;
}
int main()
{
int idx;
while(scanf("%d",&n),n)
{
init();
for(int i=1;i<=n;i++)
{
scanf("%d%d",&weight[i],&capacity[i]);
dp[i][capacity[i]]=1;
}
for(int i=2;i<=n;i++)
{
for(int j=0;j<3002;j++)
{
if(j>=weight[i])
{
idx = _min(j-weight[i],capacity[i]);
dp[i][idx]=_max(dp[i][idx],dp[i-1][j]+1);
}
dp[i][j]=_max(dp[i][j],dp[i-1][j]);
}
}
int height=0;;
for(int i=0;i<3002;i++)
{
height=_max(height,dp[n][i]);
}
cout<<height<<"\n";
}
return 0;
}