#include <iostream>
using namespace std;
int n, W, w, v, w1, g, z, mx, d[105][305]={1};
int main() {
	int i, j, k;
	cin>>n>>W;
	for(i=1; i<=n; i++) {
		cin>>w>>v;
		if(i==1) w1=w;
		g = w-w1;
		z += g;
		for(j=i; j; j--) for(k=g; k<=z && j*w1+k<=W; k++)
		if(d[j-1][k-g]) {
			d[j][k] = max(d[j][k], d[j-1][k-g]+v);
			mx = max(mx, d[j][k]);
		}
	}
	cout<<max(mx-1, 0);
	return 0;
}