n,k = list(map(int,input().split()))
date = list(map(int,input().split()))
piece = []
a = [date[0]]
door = 0 # 避免有連續負數時,切割會出現空串列
#將收益已負數為切點切成數塊e.g. 3, 1, -2, 3, -2 ,3, -5, 2, 2 => [[3, 1], [-2, 3], [-2, 3], [-5, 2, 2]]
for i in range(1,n):
if date[i] < 0 :
if door == 0:
piece.append(a)
a = [date[i]]
door = 1
else:
a.append(date[i])
door = 0
piece.append(a)
#----------------------------------
# 用迴圈計算 第一次先只選取piece的第一項把項目放進shelter,用金磚依次排除掉最大負數,再計算總合加入ans。 第二次選取piece的第一二項把項目放進 shelter,接下來一樣的處理方法。接下來以此類推
ans = []
for out in range(len(piece)):
shelter = []
for inside in range(out+1):
for i in piece[inside]:
shelter.append(i)
shelter.sort()
for j in range(k):
if len(shelter) != 0:
if shelter[0] < 0:
shelter.pop(0)
else:
break
ans.append(sum(shelter))
#-----------------------------------
if len(ans) == 0 or max(ans) < 0:
print(0)
else:
print(max(ans))