#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 10000int dp[N];int n,L;int t[32],v[32];int judge(int tim){ int i,j; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { for(j=t[i];j<=tim;j++) { dp[j]=max(dp[j],dp[j-t[i]]+(tim-j)*v[i]); } } for(i=1;i<=tim;i++) { if(dp[i]>=L) { return 1; } } return 0;}int main(){ while(scanf("%d%d",&n,&L)!=EOF) { for(int i=1; i<=n; i++) { scanf("%d%d",&t[i],&v[i]); } int left=1; int right=9999; while(left<right) { int mid=left+right>>1; if(judge(mid)) { right=mid; } else { left=mid+1; } } printf("%dn",left); } return 0;}


