#include<iostream>
#include<algorithm>
#include <climits>
using namespace std;
int dp[505][2005];
pair<int, int>beverage[505];
int main() {
int n, l,cnt=0;
cin >> n >> l;
for (int i = 1; i <= n; i++) {
cin >> beverage[i].first >> beverage[i].second;
cnt += beverage[i].second;
}
if (cnt < l) {
cout << "no solution";
return 0;
}
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= l; j++) {
dp[i][j] = INT_MAX;
}
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= l; j++) {
if (j < beverage[i].second)
dp[i][j] = min(dp[i - 1][j], beverage[i].first);
else
dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - beverage[i].second] + beverage[i].first);
}
}
cout << dp[n][l];
return 0;
}