uses math;
const maxn = 10000;
      fi = '';
      fo = '';
var n:word;
    k:byte;
    a: array[1..maxn] of integer;
    f: array[0..maxn] of longint;
    res:longint;
procedure enter;
var i,j:word;
begin
  assign(input,fi);
  reset(input);
  assign(output,fo);
  rewrite(output);
  readln(n,k);
  f[0]:=0;
  res:=0;
  for i:=1 to n do
  begin
    read(a[i]);
    f[i]:=trunc(-10e9);
    if i=1 then f[i]:=max(0,a[i])
    else
      for j:=i-1 downto max(0,i-k) do
      f[i]:=max(f[i],f[j]+a[i]);
    if f[i]>res then res:=f[i];
  end;
  writeln(res);
  close(input);
  close(output);
end;
begin
  enter;
end.