#include<bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
#define str string
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define pb push_back
#define pii pair<int,int>
#define pll pair<ll,ll>
#define el "\n"
#define foR(i,a,b) for(int i=a;i<=b;i++)
#define FoR(i,b,a) for(int i=b;i>=a;i--)
#define de(n,a) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<el;
using namespace std;
const int N = 1e6;
const str NAME = "dttui1";
void freop() {
freopen( (NAME + ".inp" ).c_str(), "r" , stdin );
freopen( (NAME + ".out" ).c_str(), "w" , stdout );
}
pll a[N+2] ;
int n ;
ll w , res = LLONG_MIN ;
vector < pll > v , vt ;
void try1 ( int i , ll s , ll val ) {
if ( s > w ) return ;
if ( i > n/2) {
v.push_back ( { s , val } ) ;
return ;
}
try1( i + 1 , s , val ) ;
try1 ( i + 1 , s + a[i].fi , val + a[i].se) ;
}
void try2 ( int i , ll s , ll val ) {
if ( s > w ) return ;
if ( i > n ) {
vt.push_back( { s , val } ) ;
return ;
}
try2 ( i + 1 , s , val ) ;
try2 ( i + 1 , s + a[i].fi , val + a[i].se ) ;
}
int tknp ( ll x ) {
int k = - 1 ;
int l = 0 , r = v.size() - 1 ;
while ( l <= r ) {
int mid = ( l + r ) >> 1 ;
if ( v[mid].fi <= x ) {
k = mid ;
l = mid + 1 ;
}
else r = mid - 1 ;
}
return k ;
}
void MITM() {
try1( 1 , 0 , 0 ) ;
try2 ( n / 2 + 1 , 0 , 0 ) ;
sort ( all ( v ) ) ;
for ( int i = 1 ; i < v.size() ; i++ ) {
v[i].se = max ( v[i].se , v[i-1].se ) ;
}
for ( auto x : vt ) {
int k = tknp( w - x.fi ) ;
if ( k == -1 ) continue;
res = max ( res , x.se + v[k].se ) ;
}
cout << res ;
}
int main(){
ios_base::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0) ;
freop() ;
cin >> n >> w ;
foR(i,1,n) cin >> a[i].fi >> a[i].se ;
MITM() ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKI2RlZmluZSBzdHIgc3RyaW5nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksKHgpLmVuZCgpIAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgcGxsIHBhaXI8bGwsbGw+CiNkZWZpbmUgZWwgIlxuIgojZGVmaW5lIGZvUihpLGEsYikgZm9yKGludCBpPWE7aTw9YjtpKyspCiNkZWZpbmUgRm9SKGksYixhKSBmb3IoaW50IGk9YjtpPj1hO2ktLSkKI2RlZmluZSBkZShuLGEpIGZvcihpbnQgaT0xO2k8PW47aSsrKSBjb3V0PDxhW2ldPDwiICI7Y291dDw8ZWw7Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTiA9IDFlNjsKY29uc3Qgc3RyIE5BTUUgPSAiZHR0dWkxIjsKCnZvaWQgZnJlb3AoKSB7CiAgICBmcmVvcGVuKCAoTkFNRSArICIuaW5wIiApLmNfc3RyKCksICJyIiAsIHN0ZGluICk7CiAgICBmcmVvcGVuKCAoTkFNRSArICIub3V0IiApLmNfc3RyKCksICJ3IiAsIHN0ZG91dCApOwp9CgpwbGwgYVtOKzJdIDsKaW50IG4gOyAKbGwgdyAsIHJlcyA9IExMT05HX01JTiA7CnZlY3RvciA8IHBsbCA+IHYgLCB2dCA7Cgp2b2lkIHRyeTEgKCBpbnQgaSAsIGxsIHMgLCBsbCB2YWwgKSB7CiAgICBpZiAoIHMgPiB3ICkgcmV0dXJuIDsgCiAgICBpZiAoIGkgPiBuLzIpIHsKICAgICAgICB2LnB1c2hfYmFjayAoIHsgcyAsIHZhbCB9ICkgOwogICAgICAgIHJldHVybiA7CiAgICB9CiAgICB0cnkxKCBpICsgMSAsIHMgLCB2YWwgKSA7CiAgICB0cnkxICggaSArIDEgLCBzICsgYVtpXS5maSAsIHZhbCArIGFbaV0uc2UpIDsKfQoKdm9pZCB0cnkyICggaW50IGkgLCBsbCBzICwgbGwgdmFsICkgewogICAgaWYgKCBzID4gdyApIHJldHVybiA7IAogICAgaWYgKCBpID4gbiApIHsKICAgICAgICB2dC5wdXNoX2JhY2soIHsgcyAsIHZhbCB9ICkgOwogICAgICAgIHJldHVybiA7CiAgICB9CiAgICB0cnkyICggaSArIDEgLCBzICwgdmFsICkgOwogICAgdHJ5MiAoIGkgKyAxICwgcyArIGFbaV0uZmkgLCB2YWwgKyBhW2ldLnNlICkgOwp9CgppbnQgdGtucCAoIGxsIHggKSB7CiAgICBpbnQgayA9IC0gMSA7CiAgICBpbnQgbCA9IDAgLCByID0gdi5zaXplKCkgLSAxIDsKICAgIHdoaWxlICggbCA8PSByICkgewogICAgICAgIGludCBtaWQgPSAoIGwgKyByICkgPj4gMSA7CiAgICAgICAgaWYgKCB2W21pZF0uZmkgPD0geCApIHsKICAgICAgICAgICAgayA9IG1pZCA7CiAgICAgICAgICAgIGwgPSBtaWQgKyAxIDsKICAgICAgICB9CiAgICAgICAgZWxzZSByID0gbWlkIC0gMSA7CiAgICB9CiAgICByZXR1cm4gayA7Cn0KCnZvaWQgTUlUTSgpIHsKICAgIHRyeTEoIDEgLCAwICwgMCApIDsKICAgIHRyeTIgKCBuIC8gMiArIDEgLCAwICwgMCApIDsKICAgIHNvcnQgKCBhbGwgKCB2ICkgKSA7CiAgICBmb3IgKCBpbnQgaSA9IDEgOyBpIDwgdi5zaXplKCkgOyBpKysgKSB7CiAgICAgICAgdltpXS5zZSA9IG1heCAoIHZbaV0uc2UgLCB2W2ktMV0uc2UgKSA7CiAgICB9CiAgICBmb3IgKCBhdXRvIHggOiB2dCApIHsKICAgICAgICBpbnQgayA9IHRrbnAoIHcgLSB4LmZpICkgOwogICAgICAgIGlmICggayA9PSAtMSApIGNvbnRpbnVlOyAKICAgICAgICByZXMgPSBtYXggKCByZXMgLCB4LnNlICsgdltrXS5zZSApIDsgCiAgICB9IAogICAgY291dCA8PCByZXMgOyAKfQoKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCkgOyBjaW4udGllKDApIDsgY291dC50aWUoMCkgOwoKICAgIGZyZW9wKCkgOwoKICAgIGNpbiA+PiBuID4+IHcgOwogICAgZm9SKGksMSxuKSBjaW4gPj4gYVtpXS5maSA+PiBhW2ldLnNlIDsKCiAgICBNSVRNKCkgOwoKICAgIHJldHVybiAwIDsKfQ==