#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,W,ans;
int w[110],v[110],f[110][110][310];
int main()
{
	//freopen("tt.in","r",stdin);
	scanf("%d%d",&n,&W);
	for(int i=1;i<=n;i++)
		scanf("%d%d",&w[i],&v[i]);
	int t=w[1];
	for(int i=1;i<=n;i++)w[i]-=t;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			for(int k=0;k<=n*3;k++)
			{
				f[i][j][k]=f[i-1][j][k];
				if(k>=w[i])f[i][j][k]=max(f[i][j][k],f[i-1][j-1][k-w[i]]+v[i]);
			}
	for(int i=1;i<=n;i++)
		for(int j=0;j<=i*3&&j<=W-(ll)t*i;j++)
			ans=max(ans,f[n][i][j]);
	printf("%d\n",ans);
	return 0;
}

