#include <bits/stdc++.h>
using namespace std;
int n,m;
int dp[10005][10005];
short int w[10005],v[10005];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>w[i]>>v[i];
}
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(j<w[i])
{
dp[i][j]=dp[i-1][j];
}
else
{
dp[i][j]=max(dp[i-1][j-w[i]]+v[i],dp[i-1][j]);
}
}
}
cout<<dp[n][m];
}
洛谷的数据好大啊!