#include<bits/stdc++.h>
#define newline '\n'
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
///********************
const int GMAX = 1005, WMAX = 5005;
struct
{
int e, c;
} v[GMAX];
int dp[GMAX][WMAX];
int g, w;
int main()
{
fin >> g >> w;
for (int i = 1; i <= g; i++)
fin >> v[i].e >> v[i].c;
for (int i = 1; i <= g; i++)
for (int j = 1; j <= w; j++)
dp[i][j] = INT_MAX;
dp[1][v[1].e] = v[1].c;
for (int i = 2; i <= g; i++)
{
for (int cw = 1; cw <= w; cw++)
{
dp[i][cw] = dp[i - 1][cw];
if (v[i].e <= cw)
dp[i][cw] = min(dp[i][cw], dp[i - 1][cw - v[i].e] + v[i].c);
else
dp[i][cw] = min(dp[i][cw], v[i].c);
}
}
if (dp[g][w] != INT_MAX)
fout << dp[g][w];
else
fout << -1;
return 0;
}