inp=input().split(' ')
n,k=int(inp[0]),int(inp[1])
num_mat=[]
all_num=[]
for i in range(n):
tar=input().split(' ')
target=[int(x) for x in tar]
num_mat.append(target)
all_num.append([float('-inf')]*len(target))
# 从最下面一行往第一行迭代相加找到全局最优解,k只会限制最后一行的位置
# 而每一行(i,1)会对应上一行的(i-1,0)
for i in range(n):
for j in range(2*(n-i)-1):
if i >0:
all_num[n-1-i][j]=max(all_num[n-i][j],all_num[n-i][j+1],all_num[n-i][j+2])+num_mat[n-1-i][j]
else:
if k>=n-1:
all_num[n-1-i][j]=num_mat[n-1-i][j]
else:
for numb in range(n-k-1,n+k):
all_num[n-1-i][numb]=num_mat[n-1-i][numb]
print(all_num[0][0])