// author : anphung >> npkly
#include<bits/stdc++.h>
using namespace std;
#define int64 long long
#define f0(i,a,b) for(int (i)=(a);(i)<=(b);++i)
int n;int64 s;
vector<int64>w;
vector<int64>v;
int64 ans;
void Try(int i,int64 cw,int64 cv){
if(i==n){
if(cw<=s)ans = max(ans,cv);
return;
}
Try(i+1,cw,cv);
if(cw+w[i]<=s){
Try(i+1,cw+w[i],cv+v[i]);
}
}
int32_t main(){
ios::sync_with_stdio(0);cin.tie(0);
cin>>n>>s;
v.resize(n);w.resize(n);
f0(i,0,n-1){
cin>>w[i]>>v[i];
}
ans=0;
Try(0,0,0);
cout<<ans;
}
Ly8gYXV0aG9yIDogYW5waHVuZyA+PiBucGtseQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGludDY0IGxvbmcgbG9uZwojZGVmaW5lIGYwKGksYSxiKSBmb3IoaW50IChpKT0oYSk7KGkpPD0oYik7KytpKQoKaW50IG47aW50NjQgczsKdmVjdG9yPGludDY0Pnc7CnZlY3RvcjxpbnQ2ND52OwppbnQ2NCBhbnM7CnZvaWQgVHJ5KGludCBpLGludDY0IGN3LGludDY0IGN2KXsKICAgIGlmKGk9PW4pewogICAgICAgIGlmKGN3PD1zKWFucyA9IG1heChhbnMsY3YpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIFRyeShpKzEsY3csY3YpOwogICAgaWYoY3crd1tpXTw9cyl7CiAgICAgICAgVHJ5KGkrMSxjdyt3W2ldLGN2K3ZbaV0pOwogICAgfQp9CgppbnQzMl90IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7CiAgICBjaW4+Pm4+PnM7CiAgICB2LnJlc2l6ZShuKTt3LnJlc2l6ZShuKTsKICAgIGYwKGksMCxuLTEpewogICAgICAgIGNpbj4+d1tpXT4+dltpXTsKICAgIH0KICAgIGFucz0wOwogICAgVHJ5KDAsMCwwKTsKICAgIGNvdXQ8PGFuczsKfQ==