#include<bits/stdc++.h>

using namespace std;

long long arr[105][100005];
vector<int> vw(1),vv(1);


int main(){
    int n,w,a,b;
    scanf("%d%d",&n,&w);
    for(int i=0;i<n;i++){
        scanf("%d%d",&a,&b);
        vw.push_back(a);
        vv.push_back(b);
    }
    arr[1][vw[1]]=vv[1];
    for(int i=2;i<=n;i++){
        for(int j=1;j<=w;j++){
            if(vw[i]>j) arr[i][j]=arr[i-1][j];
            else arr[i][j]=max(arr[i-1][j],arr[i-1][j-vw[i]]+vv[i]);
        }
    }
    /*for(int i=1;i<=n;i++){
        for(int j=1;j<=w;j++)
            printf("%d ",arr[i][j]);
        printf("\n");
    }*/
    printf("%lld",arr[n][w]);
    return 0;
}
