#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 5;
int n , W;
int dp[N];
int x[15][15];
vector < pair < int , int > > bags;
main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> W;
for(int i = 1 ; i <= n ; i++)
{
int w , v;
cin >> v >> w;
x[w][v]++;
}
for(int w = 1 ; w <= 10 ; w++)
for(int v = 1 ; v <= 10 ; v++)
{
int a = x[w][v];
int p = 1; /// 2 ^ 0
while(a >= p)
{
bags.push_back({w * p , v * p});
a -= p;
p *= 2;
}
if(a > 0)
bags.push_back({w * a , v * a});
}
dp[0] = 0;
for(int i = 1 ; i <= W ; i++)
dp[i] = -1e18;
for(auto x: bags)
{
for(int i = W ; i >= 0 ; i--)
if(i >= x.first)
dp[i] = max(dp[i] , dp[i - x.first] + x.second);
}
cout << *max_element(dp + 0 , dp + W + 1);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKY29uc3QgaW50IE4gPSAxZTUgKyA1OwppbnQgbiAsIFc7CmludCBkcFtOXTsKaW50IHhbMTVdWzE1XTsKdmVjdG9yIDwgcGFpciA8IGludCAsIGludCA+ID4gYmFnczsKCm1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjaW4gPj4gbiA+PiBXOwogICAgCiAgICAKICAgIAogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbiA7IGkrKykKICAgIHsKICAgICAgICBpbnQgdyAsIHY7CiAgICAgICAgY2luID4+IHYgPj4gdzsKICAgICAgICB4W3ddW3ZdKys7CiAgICAgICAgCiAgICAgICAgCiAgIAogICAgfQogICAgCiAgICBmb3IoaW50IHcgPSAxIDsgdyA8PSAxMCA7IHcrKykKICAgICAgICBmb3IoaW50IHYgPSAxIDsgdiA8PSAxMCA7IHYrKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBhID0geFt3XVt2XTsKICAgICAgICAgICAgaW50IHAgPSAxOyAvLy8gMiBeIDAKICAgICAgICAgICAgd2hpbGUoYSA+PSBwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiYWdzLnB1c2hfYmFjayh7dyAqIHAgLCB2ICogcH0pOwogICAgICAgICAgICAgICAgYSAtPSBwOwogICAgICAgICAgICAgICAgcCAqPSAyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGEgPiAwKQogICAgICAgICAgICAgICAgYmFncy5wdXNoX2JhY2soe3cgKiBhICwgdiAqIGF9KTsKICAgICAgICB9CiAgICAKICAgIAogICAgZHBbMF0gPSAwOwogICAgZm9yKGludCBpID0gMSA7IGkgPD0gVyA7IGkrKykKICAgICAgICBkcFtpXSA9IC0xZTE4OwogICAgICAgIAogICAgZm9yKGF1dG8geDogYmFncykKICAgIHsKICAgICAgICBmb3IoaW50IGkgPSBXIDsgaSA+PSAwIDsgaS0tKQogICAgICAgICAgICBpZihpID49IHguZmlyc3QpCiAgICAgICAgICAgICAgICBkcFtpXSA9IG1heChkcFtpXSAsIGRwW2kgLSB4LmZpcnN0XSArIHguc2Vjb25kKTsKICAgIH0KICAgIAogICAgY291dCA8PCAqbWF4X2VsZW1lbnQoZHAgKyAwICwgZHAgKyBXICsgMSk7CiAgICAKICAgIAp9