#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxN=4501501;
ll a=0,n=0,k=0,st[maxN][12]{},pos[maxN]={};
ll size(ll x){
return x*(x+1)/2;
}
ll down(ll x,ll y){
return size(pos[x]-1+y) + x - size(pos[x]-1);
}
ll fx(ll x,ll s){
ll l=1<<__lg(s);
ll r1=max(st[x][__lg(s)],max(st[down(x,s-l)][__lg(s)],st[down(x,s-l)+s-l][__lg(s)]));
ll r2= max(st[down(x,l)+l/2][__lg(s)],max(st[down(x,l/2)][__lg(s)],st[down(x,l/2)+l/2][__lg(s)]));
return max(r1,r2);
}
int main(){
cin>>n>>k;
ll sn=size(n);
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
pos[++a]=i;
for(int i=1;i<=sn;i++)
cin>>st[i][0];
for(int i=1;i<=__lg(n);i++){
ll l=1<<i;
for(int j=1;pos[j]+l<n+1;j++)
st[j][i-1]=fx(j,l);
}
ll ans=0;
for(int i=1;pos[i]+k<n+1;i++)
ans+=fx(i,k);
cout<<ans;
return 0;
}