#include <bits/stdc++.h>
using namespace std;
long long a,b,c,d,ans=LLONG_MAX;
long long yl_money[505],yl_rl[505];
void dfs(long long id,long long rl,long long money){
if(id==a||rl<=0){
if(rl<=0){
ans=min(ans,money);
}
return ;
}
dfs(id+1,rl,money);
if(money+yl_money[id]<ans)dfs(id+1,rl-yl_rl[id],money+yl_money[id]);
return ;
}
int main(){
cin>>a>>b;
for(int i=0;i<a;i++){
cin>>yl_money[i]>>yl_rl[i];
c+=yl_rl[i];
d+=yl_money[i];
}
if(c<b){
cout<<"no solution";
return 0;
}
if(c==b){
cout<<d;
return 0;
}
dfs(0,b,0);
cout<<ans;
return 0;
}
#2、#3TLE