#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 800005;
int ans = -1,m,n,dp[maxn],iq[maxn],eq[maxn];
signed main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i = 1;i<=n;i++){
cin>>iq[i]>>eq[i];
}
memset(dp,-0x3f,sizeof dp);
dp[400000] = 0;
for(int i = 1;i<=n;i++){
if(iq[i]>=0){
for(int j = 800000;j>=iq[i];j--){
dp[j] = max(dp[j],dp[j-iq[i]]+eq[i]);
}
}else{
for(int j = 0;j<=800000+iq[i];j++){
dp[j] = max(dp[j],dp[j-iq[i]]+eq[i]);
}
}
}
for(int i = 400000;i<=800000;i++){
if(dp[i]>0){
ans = max(ans,i+dp[i]-400000);
}
}
cout<<ans;
}