(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: dp[i][nj][k+1]=max(dp[i][nj][k+1],dp[i-1][j][k]+d) ans=sd for j in range(m+1): for k in range(l+1): ans=max(ans,sd+dp[n][j][k]) print(ans)