#include<bits/stdc++.h>
using namespace std;
#define int long long
int dp[111][111][333];
signed main(){
  int n,W;
  cin>>n>>W;
  int w[100],v[100];
  for(int i=0;i<n;i++){
    cin>>w[i]>>v[i];
  }
  
  for(int i=0;i<111;i++)
    for(int j=0;j<111;j++)
      for(int k=0;k<333;k++)
	dp[i][j][k]=-1;
  dp[0][0][0]=0;
  int ans=0;
  for(int i=0;i<n;i++)
    for(int j=0;j<n;j++){
      for(int k=0;k<333;k++){
	if(dp[i][j][k]!=-1){
	  dp[i+1][j][k]=max(dp[i][j][k],dp[i+1][j][k]);
	  int nk=k+w[i]-w[0];
	  dp[i+1][j+1][nk]=max(dp[i+1][j+1][nk],dp[i][j][k]+v[i]);
	  if((j+1)*w[0]+nk<=W)ans=max(ans,dp[i+1][j+1][nk]);
	}
      }
    }
  cout<<ans<<endl;
  return 0;
}
