N,K=map(int,input().split())
A=[int(x) for x in input().split()]

#最後に（白か黒か）塗るKマスの位置を求める。
#重要なのは該当部分以外はKマスの制約を考えなくて良いこと。i->i+K-1マス黒く塗った後にi+1->i+Kマス白く塗れば独立する

#plは当該区間の正の総和、maは当該区間の負の総和。
#最後に選ぶ連続するK個は以下の条件を満たすK個
#黒く塗ると仮定すると損をする値（ma）と白く塗る場合損をする値（pl)のminをとり、その最小値区間(reで記録)。
pl=0
ma=0
re=0

#まずは０を起点とするK個の情報を記録。その後、始点と追加点を加減しながらO(N)で求める
for i in range(K):
  if A[i] >= 0:
    pl+=A[i]
  else:
    ma+=(-A[i])
re=min(pl,ma)

for i in range(1,N-K+1):
  if A[i-1] >= 0:
    pl-=A[i-1]
  else:
    ma+=A[i-1]
  if A[i+K-1]>=0:
    pl+=A[i+K-1]
  else:
    ma+=(-A[i+K-1])
  if min(pl,ma) < re:
    re=min(pl,ma)
    
#最後に塗るK以外の区間は自由に塗る。
#最後に塗るKの区間は黒く塗る場合でも白く塗る場合でも、結果に影響するのは(-re)分のみ。
ans=0
for i in range(N):
  ans+=max(0,A[i])
    
print(ans-re)