#include <iostream> using namespace std; int w[3403];//weight int v[3403];//price int c[12881]; int main() { int N, W; scanf("%d%d", &N, &W); for(int i = 1; i <= N; ++i) scanf("%d%d", &w[i], &v[i]); for(int i = 1; i <= N; ++i) { for(int j = W; j >= 1; --j) if(j >= w[i]) { if(c[j-w[i]]+v[i] > c[j]) c[j] = c[j-w[i]]+v[i]; } } printf("%d/n",c[W]); return 0; } /* #include <iostream> using namespace std; int w[3403];//weight int v[3403];//price int c[34][12881]; int main() { int N, W; scanf("%d%d", &N, &W); for(int i = 1; i <= N; ++i) scanf("%d%d", &w[i], &v[i]); for(int i = 1; i <= N; ++i) { for(int j = 1; j <= W; ++j) if(j >= w[i]) { if(c[i][j-w[i]]+v[i] > c[i-1][j]) c[i][j] = c[i-1][j-w[i]]+v[i]; else c[i][j] = c[i-1][j]; } else c[i][j] = c[i-1][j]; } printf("%d/n",c[N][W]); return 0; } */