#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int GMAX=1000;
int dp[GMAX+1];
int main()
{
int n,c,k,g,cost,minim;
fin>>n>>k;
int maxk=0;
for(int i=1; i<=n;i++)
{
fin>> g>>cost;
for(int j=maxk;j>=0;j--)
{
if(dp[j]>0 && dp[j]+cost<dp[j+g] || dp[j+k]==0)
dp[j+g]= dp[j]+cost;
}
if(dp[g]>cost)
dp[g]=cost;
maxk = min(maxk+g,k);
}
//for(int j=0;j<=k+2;j++)
// cout<<dp[j]<<" ";
//cout<<endl;
if(dp[k]==0)
dp[k]=-1;
fout<<dp[k]<<endl;
return 0;
//minim= dp[k];
//for(int j=0; j<=k;j++)
//{
// if(dp[j]<minim && j>=k )
// minim=dp[j];
//}
//cout<<minim;
//return 0;
}