#include<bits/stdc++.h>
using namespace std;
int dp[10][1002005];
int main()
{
int n,l,c[505],v[505],x = 0,ans = 0x3f3f3f;
cin>>n>>l;
for(int i = 1;i <= n;i++)
{
cin>>c[i]>>v[i];
x = max(v[i],x);
}
dp[0][1] = 0;
dp[0][0] = 0;
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= l+x;j++)
{
if(j < c[i])
{
dp[i][j] = dp[i-1][j];
}
else
{
dp[i][j] = max(dp[i-1][j],dp[i-1][j-c[i]]+v[i]);
}
if(dp[i][j] >= l)
{
ans = min(ans,j);
}
}
}
if(ans == 0x3f3f3f)
{
cout<<"no solution";
return 0;
}
cout<<ans;
}