#include<bits/stdc++.h>
using namespace std;
int n,v,kg,mwz,ekg[1010101],sm,sk,i1,i2,sg;
double mk;
int mi,mii;
double kmwz[1010101];
int main() {
cin>>n>>v;
for(int i=0; i<n; i++) {
cin>>kg>>mwz;
ekg[i]=kg;
kmwz[i]=1.0*mwz/kg;
}
for(int i=0; i<n; i++) {
mk=0;
sg==1;
for(int j=0; j<n; j++) {
if(mk<kmwz[j]) {
mk=kmwz[j];
mi=ekg[j];
mii=j;
i1=0;
i2=0;
sg==1;
} else {
if(mk==kmwz[j]) {
sg++;
if(mi==1) {
i1++;
} else {
i2++;
}
}
}
}
if(sg>=2) {
if(i1>=1&&i2>=1) {
if(v>=sk+2) {
sk=sk+2;
sm=sm+mk*2;
for(int j=0; j<n; j++) {
if(ekg[j]==2&&kmwz[j]==mk) {
ekg[j]=0;
kmwz[j]=0;
}
}
} else {
sk=sk+1;
sm=sm+mk;
for(int j=0; j<n; j++) {
if(ekg[j]==1&&kmwz[j]==mk) {
ekg[j]=0;
kmwz[j]=0;
}
}
}
} else {
if(i2>=2) {
sk=sk+2;
sm=sm+mk*2;
for(int j=0; j<n; j++) {
if(ekg[j]==2&&kmwz[j]==mk) {
ekg[j]=0;
kmwz[j]=0;
}
}
} else {
sk=sk+1;
sm=sm+mk;
for(int j=0; j<n; j++) {
if(ekg[j]==1&&kmwz[j]==mk) {
ekg[j]=0;
kmwz[j]=0;
}
}
}
}
}
if(v>=sk+mi) {
sk=sk+mi;
sm=sm+mk*mi;
kmwz[mii]=0;
ekg[mii]=0;
}
if(v==sk) {
break;
} else {
kmwz[mii]=0;
ekg[mii]=0;
}
}
cout<<sm;
return 0;
}
/**************************************************************
Problem: 1546
User: admin
Language: C++
Result: Accepted
Time:5 ms
Memory:13916 kb
****************************************************************/