#include<iostream>
#include<algorithm>
#define lb long double
using namespace std;
const int N = 100010;
int n,f,q[N],a[N];
lb slope(int x,int y) {
return (1.0*a[x]-a[y])/(1.0*x-y);
}
int main()
{
cin>>n;
cin>>f;
for(int i=1;i<=n;++i) {
cin>>a[i];
a[i]+=a[i-1];
}
int head = 1 , tail = 0;
lb ans = 0 ;
//队列中存的是转移左端点-1
for(int i = f;i <= n; i++) {
int ys = i-f ; //延迟f个点插入
while(head<tail && slope(q[tail],ys) <= slope(q[tail-1],ys)) tail--;
q[++tail]=ys;
while(head<tail && slope(q[head],i) <= slope(q[head+1],i)) head++;
ans = max(ans , slope(q[head],i));
}
printf("%d\n",(int)(1000*ans));
}