(n,m),*e=[[*map(int,s.split())]for s in open(0)] def compare(l,r): c1,d1=l c2,d2=r return c1+2*c2<=c2+2*c1 def merge(L,R): ret=[] l=r=0 while lm: continue for j in range(m+1): #残りエネルギー dp[j][k]=max(dp[j][k],dp[j][k]) ans=max(ans,dp[j][k]) nj=j-c*tw[k] if nj>=0 and k+1<=l: dp[nj][k+1]=max(dp[nj][k+1],dp[j][k]+d) ans=max(ans,dp[nj][k+1]) print(ans+sd)