01背包
//#include <bits/stdc++.h>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long LL;
int dp[20004];
int N,M,w[4000],v[4000];
int main()
{
scanf("%d%d",&N,&M);
for(int i=1;i<=N;i++)scanf("%d%d",&w[i],&v[i]);
for(int i=1;i<=N;i++)
for(int j=M;j>=w[i];j--)
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
printf("%d",dp[M]);
return 0;
}