#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);
dp[0] = 0;
while (G--)
{
int EG, CG;
cin >> EG >> CG;
for (int i = W; i - EG >= 0; --i)
{
dp[i] = min(dp[i], CG + dp[i - EG]);
}
}
cout << (dp[W] == 2e9 ? -1 : dp[W]);
}