(n,m),*e=[[*map(int,s.split())]for s in open(0)] def compare(l,r): c1,d1=l c2,d2=r #Trueのとき左に追加される return c1+2*c2<=c2+2*c1 def merge(L,R): ret=[] l=r=0 while l=0: ndp[nj][k+1]=max(ndp[nj][k+1],dp[j][k]+d) dp=[t[:]for t in ndp] ans=sd for j in range(m+1): for k in range(l+1): ans=max(ans,sd+dp[j][k]) print(ans)