#include <bits/stdc++.h>
using namespace std;
int n, w, a[30], b[30], ans;
void dfs(int x, int y, int z)
{
    if( x == n )
    {
        if( y <= w )
        {
            ans = max( ans, z );
        }
        return;
    }
    dfs(x+1, y+a[x], z+b[x]);
    dfs(x+1, y, z);
}
int main()
{
    freopen(".5.in","r",stdin);
    freopen(".5.out","w",stdout);
    cin>>n>>w;
    for(int i = 0 ; i < n ; i++ ) cin>>a[i]>>b[i];
    dfs(0, 0, 0);
    cout<<ans;
}
