#include<bits/stdc++.h>
using namespace std;
inline long long read();
int n,k;
int a[102][102];
long long dis[102][102][5000];
long long dfs(int i,int j,int kn,long long sum)
{
if(dis[i][j][kn])
return dis[i][j][kn]+sum;
if(j>i)
return 0;
if(i==n)
return sum;
if(kn<k)
{
dis[i+1][j][kn+1]=dfs(i+1,j,kn+1,sum+a[i+1][j]*3)-sum;
dis[i+1][j+1][kn+1]=dfs(i+1,j+1,kn+1,sum+a[i+1][j+1]*3)-sum;
dis[i+1][j][kn]=dfs(i+1,j,kn,sum+a[i+1][j])-sum;
dis[i+1][j+1][kn]=dfs(i+1,j+1,kn,sum+a[i+1][j+1])-sum;
return max(max(dis[i+1][j][kn],dis[i+1][j][kn+1]),max(dis[i+1][j+1][kn],dis[i+1][j+1][kn+1]))+sum;
}
dis[i+1][j][kn]=dfs(i+1,j,kn,sum+a[i+1][j])-sum;
dis[i+1][j+1][kn]=dfs(i+1,j+1,kn,sum+a[i+1][j+1])-sum;
return max(dis[i+1][j][kn],dis[i+1][j+1][kn])+sum;
}
int main()
{
n=read();
k=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
a[i][j]=read();
cout<<max(dfs(1,1,1,a[1][1]*3),dfs(1,1,0,a[1][1]));
return 0;
}