#include <stdio.h>
#define MAXV 1000
int dp[MAXV];

int main (){
    int N,V;
    scanf("%d %d",&N,&V);
    int a[1000]; //体积
    int b[1000]; //价值
    int i,j;
    for (i=1;i<=N;i++){
        scanf("%d %d",&a[i],&b[i]);
    }

    //完全背包：j从小到大
    for(i = 1; i <= N; i++){
        for(j = a[i]; j <= V; j++){
            if(dp[j - a[i]] + b[i] > dp[j]){
                dp[j] = dp[j - a[i]] + b[i];
            }
        }
    }
    printf("%d", dp[V]);
    return 0;
}
