#include <bits/stdc++.h>
using namespace std;
const int WMAX=1e7+5;
int G, W, i, j, E, C;
bitset <WMAX> H;
long long sum=0;
int ans=INT_MAX;
long long sol[WMAX];
long long min (long long A, long long B)
{
if(A<=B)
return A;
else return B;
}
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
H[0]=1;
scanf("%d%d", &G, &W);
for(i=1; i<=G; i++)
{
scanf("%d%d", &E, &C);
for(j=min(W-E, sum); j>=0; j--)
if(H[j])
{
if(H[j+E]==1)
sol[j+E]=min(sol[j+E], sol[j]+C);
else sol[j+E]=sol[j]+C;
H.set(j+E);
}
sum+=E;
}
if(sum>=W)
{
for(i=W; i<=sum; i++)
if(H[i]==1)
ans=min(ans, sol[i]);
printf("%d\n", ans);
}
else printf("%d\n", -1);
return 0;
}