import java.util.Scanner;
/**
* @author cwz
* @date 2018-08-help2
*/
public class help2 {
public static void main(String[] args){
final int OFFSET = 100000;
int[][] dp = new int[101][200001];
int[][] totalValue = new int[101][200001];
int[][] buf = new int[101][2];
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=1; i<=n; i++){
int x = sc.nextInt();
int y = sc.nextInt();
buf[i][0] = x;
buf[i][1] = y;
}
for(int i=-100000; i<=100000; i++){
dp[0][i+OFFSET] = Integer.MIN_VALUE;
totalValue[0][i+OFFSET] = Integer.MIN_VALUE;
}
dp[0][0+OFFSET] = 0;
totalValue[0][0+OFFSET]=0;
for(int i=1;i<=n;i++){
for(int j=-100000; j<=100000; j++){
int tmp1 = Integer.MIN_VALUE, tmp2 = Integer.MIN_VALUE;
if(j+buf[i][0] <= 100000 && dp[i-1][j+buf[i][0]+OFFSET]!=Integer.MIN_VALUE){
tmp1 = totalValue[i-1][j+buf[i][0]+OFFSET] + buf[i][1];
}
if(j-buf[i][0] >= -100000 && dp[i-1][j-buf[i][0]+OFFSET]!=Integer.MIN_VALUE){
tmp2 = totalValue[i-1][j-buf[i][0]+OFFSET] + buf[i][1];
}
if(tmp1 < tmp2) tmp1 = tmp2;
if(tmp1 < totalValue[i-1][j+OFFSET]) tmp1 = totalValue[i-1][j+OFFSET];
totalValue[i][j+OFFSET] = tmp1;
}
}
System.out.println(totalValue[n][0+OFFSET]);
}
}