#include <bits/stdc++.h>
using namespace std;
const int MAX=100;
int m[105][60005];
int cnt(int l,int n,int b[MAX][2]){
if(l<0)return -1e9;
if(l==0)return 0;
if(n<0)return 0;
if(m[l][n]!=-1)return m[l][n];
int take=cnt(l-b[n][0],n-1,b)+b[n][1];
int skip=cnt(l,n-1,b);
m[l][n]=max(take,skip);
return m[l][n];
}
int main(){
int c;
while(cin>>c){
memset(m,-1,sizeof(m));
int a[MAX][2];
for(int i=0;i<c;i++) cin>>a[i][0]>>a[i][1];
cout<<cnt(100,c-1,a)<<endl;
}return 0;
}