#include <bits/stdc++.h>
#include <cassert>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using pi = pair<int, int>;
using pl = pair<ll, ll>;
using pd = pair<double, double>;
using pld = pair<ld, ld>;
int main()
{
ifstream cin("energii.in");
ofstream cout("energii.out");
int G, W;
cin >> G >> W;
vector<int> dp(W + 1, 2e9);
while (G--)
{
int EG, CG;
cin >> EG >> CG;
for (int i = EG; i <= W; ++i)
{
dp[i] = min(dp[i], CG + dp[i - EG]);
}
for (int i = 1; i <= min(W, EG); ++i)
{
dp[i] = min(dp[i], CG);
}
}
cout << (dp[W] == 2e9 ? -1 : dp[W]);
}