#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
****************************************************************/