#include <iostream>
#include <fstream>
using namespace std;
#define fin "energii.in"
#define fout "energii.out"
ifstream in(fin);
ofstream out(fout);
struct generator
{
int cost;
int prod;
};
generator gen[1000];
int g,w;
int mins[10000];
int solvez(int cattrebe)
{
if (cattrebe <= 0) return 0;
if (mins[cattrebe] > -1)
{
return mins[cattrebe];
}
int mincost = 100000;
for (int i = 0; i < g; i++)
{
if (gen[i].prod <= cattrebe)
{
int av = solvez(cattrebe - gen[i].prod);
if ((gen[i].cost + av ) < mincost)
{
mincost = gen[i].cost + av;
}
}
}
mins[cattrebe] = mincost;
return mincost;
}
int deval;
int main()
{
in >> g;
in >> w;
for (int i = 0; i < 10000; i++)
{
mins[i] = -1;
}
for (int i = 0; i < g; i++)
{
in >> gen[i].prod;
in >> gen[i].cost;
}
out <<solvez(w);
}