/*
5 2
1 2 3 4 5
应输出:12
*/
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#define N 100005
#define ull unsigned long long
using namespace std;
int n,m,a[N],num[N],head,tail;
ull sum[N],f[N][2],q[N];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]),sum[i]=sum[i-1]+a[i];
}
head=tail=1;
for(int i=1;i<=n;i++)
{
f[i][0]=max(f[i-1][0],f[i-1][1]);
f[i][1]=f[i][0];
while(num[head]<i-m&&head<=tail) head++;
f[i][1]=max(f[i][1],sum[i]+q[head]);
while(q[tail]<f[i][0]-sum[i]&&head<=tail) tail--;
q[++tail]=f[i][0]-sum[i]; num[tail]=i;
cout<<f[i][0]<<" "<<f[i][1]<<endl;
}
cout<<max(f[n][0],f[n][1]);
return 0;
}