#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
struct much
{
int p,e;
}a[1001];
bool cmp(much x,much y)
{
return x.e>y.e;
}
int n,G,v[3002],i,t,r[3002],s,j,sum;
int main()
{
f>>n>>G;
for(i=1;i<=n;i++)
f>>a[i].e>>a[i].p;
sum=G;
sort(a+1,a+n+1,cmp);
for(i=1;i<=n;i++)
{
for(t=1;t<=sum;t++)
r[t]=0;
s=0;
v[a[i].e]=a[i].p;
for(j=1;j<=sum;j++)
{
if(v[j]!=0&&j!=a[i].e&&!r[j])
{
s=a[j].p+a[i].p;
if(s<=sum)
{
r[s]=1;
if(v[s]==0)
{
v[s]=a[s].p;
}
else
v[s]=min(a[s].p,a[i].p+a[j].p);
}
}
}
}
int mi=99999999;
for(i=1;i<=sum;i++)
if(v[G]!=0)
{
mi=min(mi,v[G]);
}
if(mi==0)
g<<-1;
else
g<<mi;
return 0;
}