nk = gets.chomp.split(" ").map(&:to_i)
a = gets.chomp.split(" ").map(&:to_i)
b = a.reverse

def search(a,nk)
ans = 0
last_chosen = 0
for i in 0..nk[0]-nk[1]-1
  ans += a[i] if a[i] > 0
  last_chosen = i if a[i] > 0
end
#p ans

tmp = 0
last = a.size-1
#last_chosen+=1
#p last_chosen + nk[1]
#=begin
for i in last_chosen+nk[1]+1..(nk[0]-1)
  crt = nk[0] - 1 - (i - (last_chosen+1 + nk[1]))
 # p [i, crt]
  #p a[crt]
  tmp += a[crt] if a[crt] > 0
  last = crt 
end
#p ans
#p last_chosen..last
scores = a[last_chosen+nk[1] .. -1].each_cons(nk[1]).map{|t| t.inject(:+)}
#p scores
scr = scores.size > 0 ? scores.max : 0
ans += [scr, tmp].max
#ans += scores.max if scores.size > 0&& scores.max > 0
#for i in nk[0]-nk[1]..(nk[0]-1)
#  p a[i]
#  tmp += a[i] #if a[i] > 0
#end

#ans += tmp if tmp >0
return ans
end

ascore = search(a,nk)
bscore = search(b,nk)
if ascore > bscore
p ascore
else
p bscore
end

=begin
imos = []

(nk-1).times do |i|
imos << a[i+1] - a[i]
end
#cons = []
cons_index = []
cons_index_wh = []
if nk[0]>=nk[1]
a.each_cons(nk[1]).with_index do |items, i|
  score = items.inject(:+)
  p score
if score > 0
  cons_index.concat([*i..i+nk[1]-1])
elsif score < 0
  cons_index_wh.concat([*i..i+nk[1]-1])
end
end
p cons_index.uniq!
p cons_index_wh.uniq!
p cons_index_wh

k = cons_index.map{|t| a[t]}&.inject(:+) || 0
t = -cons_index_wh.map{|t| a[t]}&.inject(:+) || 0

if k>t
p k
else
p t
end
=end
