#include using namespace std; int dp[3030][3030][2]; int N,M,A[3000]; main() { cin>>N>>M; for(int i=0;i>A[i]; for(int i=0;i-1e9) { dp[i+1][j][0]=max(dp[i+1][j][0],dp[i][j][0]); dp[i+1][j+1][1]=max(dp[i+1][j+1][1],dp[i][j][0]); } if(dp[i][j][1]>-1e9) { dp[i+1][j][0]=max(dp[i+1][j][0],dp[i][j][1]); dp[i+1][j+1][1]=max(dp[i+1][j+1][1],dp[i][j][1]+A[i]); } } int ans=max(dp[N-1][M][0],dp[N-1][M][1]); for(int i=0;i-1e9) { dp[i+1][j][0]=max(dp[i+1][j][0],dp[i][j][0]); dp[i+1][j+1][1]=max(dp[i+1][j+1][1],dp[i][j][0]); } if(dp[i][j][1]>-1e9) { dp[i+1][j][0]=max(dp[i+1][j][0],dp[i][j][1]); dp[i+1][j+1][1]=max(dp[i+1][j+1][1],dp[i][j][1]+A[i]); } } ans=max(ans,max(dp[N-1][M][0],dp[N-1][M][1]+A[N-1])); cout<