// 01 背包
#include <iostream>
#include <string.h>
using namespace std;
int dp[21][1010];
int w[21],c[21];
int main() {
int N,V;//N为背包数目,V为容器体积
cin>>N>>V;
for(int i=1;i<=N;i++){
cin>>w[i]>>c[i];//每个背包的重量与体积
}
for(int i=1;i<=N;++i){
for(int j=0;j<=V;++j){
if(j>=c[i]){//容器剩余体积大于当前要放的背包的体积
dp[i][j]=max(dp[i-1][j-c[i]]+w[i],dp[i-1][j]);
}
else{
dp[i][j]=dp[i-1][j];
}
}
}
cout<<dp[N][V]<<endl;
return 0;
}