#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f ("energii.in");
ofstream k ("energii.out");
struct eficient
{ float eg,cg;
}v[1000],aux;
int g,w,i,s1=0,s2=0,j,c1=0,c2=0;
f>>g>>w;
for (i=1;i<=g;i++)
f>>v[i].eg>>v[i].cg;
for (i=1;i<g;i++)
{for (j=i+1;j<=g;j++)
{if (v[i].eg<v[i].eg)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}}}
i=1; while (s2<w)
{
s2+=v[i].eg; c2+=v[i].cg;
if ((v[i].eg==v[i+1].eg)&&(v[i].cg>v[i+1].cg))
{ s2-=v[i].eg; c2-=v[i].cg;}
}
for (i=1;i<g;i++)
{for (j=i+1;j<=g;j++)
{if (v[i].cg<v[i].cg)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}}}
i=1; while (s1<w)
{
s1+=v[i].eg; c1+=v[i].cg;
if ((v[i].eg==v[i+1].eg)&&(v[i].cg>v[i+1].cg))
{ s1-=v[i].eg; c1-=v[i].cg;}
}
if (c1>c2)k<<c2;
else k<<c1;
return 0;
}