#include<bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int NMAX = 1005;
int energie[NMAX], cost[NMAX];
int main() {
int G, W, i, j;
fin >> G >> W;
for (i = 1; i <= G; i++) {
fin >> energie[i] >> cost[i];
}
const int INF = 1e9; // numar mare
int mxenergie = 0;
for (i = 1; i <= G; i++) mxenergie += energie[i];
vector<int> dp(mxenergie + 1, INF);
dp[0] = 0;
for (i = 1; i <= G; i++) {
for (j = mxenergie; j >= energie[i]; j--) {
dp[j] = min(dp[j], dp[j - energie[i]] + cost[i]);
}
}
int sol = INF;
for (i = W; i <= mxenergie; i++) {
sol = min(sol, dp[i]);
}
fout << sol << '\n';
return 0;
}