#include <bits/stdc++.h>
#define nmax 1005
#define nmax1 1000000
using namespace std;
struct numere
{
int energie;
int cost;
}num[nmax];
int g, p;
int raspuns;
int s;
int din[nmax][nmax];
void citire()
{
scanf("%d%d", &g, &p);
for(int i=1;i<=g;i++)
{
int x, y;
scanf("%d%d", &x, &y);
num[i].energie=x;
num[i].cost=y;
s+=num[i].energie;
}
}
void rezolvare()
{
for(int i=0;i<=g;i++)
for(int j=0;j<=p;j++)
din[i][j]=nmax1;
for(int i=1;i<=g;i++)
{
for(int j=0;j<=p;j++)
{
din[i][j]=min(din[i-1][j], num[i].cost);
if(num[i].energie<j)
din[i][j]=min(din[i-1][j], din[i-1][j-num[i].energie]+num[i].cost);
}
}
}
void afisare()
{
raspuns=din[g][p];
printf("%d", raspuns);
}
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
citire();
if(s<p)
{
printf("-1\n");
return 0;
}
rezolvare();
afisare();
return 0;
}