#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<ll,ll> P;

#define fr first
#define sc second
#define chmax(a,b) a=max(a,b)
#define chmin(a,b) a=min(a,b)

int main(){
	ll n,w;
	ll x[102],y[102];
	scanf("%lld%lld",&n,&w);
	for(int i=0;i<n;i++)scanf("%lld%lld",&x[i],&y[i]);
	
	map<ll,ll> dp;
	dp[0]=0;
	for(int i=0;i<n;i++){
		auto itr=dp.end();
		while(itr!=dp.begin()){
			--itr;
			chmax(dp[itr->fr+x[i]],itr->sc+y[i]);
		}
	}
	
	ll ret=0;
	for(P p: dp)if(p.fr<=w)chmax(ret,p.sc);
	cout<<ret<<endl;
}