#include<bits/stdc++.h>
using namespace std;
const int T=4e5;
int n,dp[800005],eq[405],iq[405],ziq;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>iq[i]>>eq[i];
if(iq[i]>0)ziq+=iq[i];
}
for(int i=1;i<=n;i++){
if(iq[i]>=0)
for(int j=ziq;j>=iq[i];j--)
dp[j+T]=max(dp[j+T],dp[j+T-iq[i]]+eq[i]);
else
for(int j=iq[i];j<=ziq;j++)
dp[j+T]=max(dp[j+T],dp[j+T-iq[i]]+eq[i]);
}
int ans=0;
for(int i=0;i<=ziq;i++)
if(dp[i+T]>0)
ans=max(ans,dp[i+T]+i);
cout<<ans<<'\n';
}