#include<bits/stdc++.h>
using namespace std;
struct node{
int x,num;
}a[109];
bool coo(node x,node y){
double x1=1.0*x.num/x.x;
double y1=1.0*y.num/y.x;
return x1>y1;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].num;
}
sort(a+1,a+n+1,coo);
int sum=0,ans=0,mn=1e9,mx=0;
for(int i=1;i<=n;i++){
if(ans+a[i].x<=m&&a[i].x-mn<=3&&mx-a[i].x<=3){
sum+=a[i].num;
ans+=a[i].x;
mn=min(mn,a[i].x);
mx=max(mx,a[i].x);
}
}
cout<<sum<<endl;
return 0;
}