01背包
#include <cstdio>
#include <cstring>
int main()
{
int N,M,w[3500],d[3500],val[13000],i,j;
while(scanf("%d%d",&N,&M)!=EOF)
{
for(i=1;i<=N;i++)
scanf("%d%d",w+i,d+i);
memset(val,0,sizeof(val));
for(i=1;i<=N;i++)
for(j=M;j>=w[i];j--)
if(val[j]<val[j-w[i]]+d[i])
val[j]=val[j-w[i]]+d[i];
printf("%d\n",val[M]);
}
return 0;
}