#include<bits/stdc++.h>
using namespace std;
const long long INF = -1e18;
#define ll long long
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,k;
    cin >> n >> k;
    vector<vector<ll>> a(n);
    for(int i=0; i<n; i++){
        a[i].resize(2*i+1);
        for(int j=0; j<2*i+1; j++){
            cin >> a[i][j];
        }
    }
    vector<vector<ll>> dp = a;
    int cen = n-1;
    for(int j=0; j<2*n-1; j++){
        if(abs(j-cen) > k){
            dp[n-1][j] = INF;
        }
    }
    for(int i=n-2; i>=0; i--){
        for(int j=0; j<2*i+1; j++){
            long long max_next = max({dp[i+1][j], dp[i+1][j+1], dp[i+1][j+2]});
            if(max_next > INF+1) dp[i][j] += max_next;
            else dp[i][j] = INF;
        }
    }
    cout << dp[0][0];
}