AC #1~#4、#7
#include <iostream>
#include <algorithm>
#include <climits>
using namespace std;
long long dp[101][101][5151];
int main(){
int n,k;
cin >> n >> k;
long long a[n][n];
for(int i=0;i<n;i++)for(int j=0;j<=i;j++)cin >> a[i][j];
dp[0][0][0]=a[0][0];
if(k>0)dp[0][0][1]=a[0][0]*3;
for(int i=1;i<n;i++)for(int j=0;j<=i;j++)for(int l=0;l<=k;l++){
if(j==0){
if(l==0)dp[i][j][l]=dp[i-1][j][l]+a[i][j];
else dp[i][j][l]=max(dp[i-1][j][l-1]+a[i][j]*3,dp[i-1][j][l]+a[i][j]);
}else if(j==i){
if(l==0)dp[i][j][l]=dp[i-1][j-1][l]+a[i][j];
else dp[i][j][l]=max(dp[i-1][j-1][l-1]+a[i][j]*3,dp[i-1][j-1][l]+a[i][j]);
}else{
if(l==0)dp[i][j][l]=max(dp[i-1][j][l],dp[i-1][j-1][l])+a[i][j];
else{
dp[i][j][l]=max(dp[i-1][j][l-1],dp[i-1][j-1][l-1])+a[i][j]*3;
dp[i][j][l]=max(dp[i][j][l],max(dp[i-1][j][l],dp[i-1][j-1][l])+a[i][j]);
}
}
}
long long maxn=LLONG_MIN;
for(int j=0;j<n;j++)for(int l=0;l<=k;l++)maxn=max(maxn,dp[n-1][j][l]);
cout << maxn << endl;
}