const int N=1e5+5;
int n,m,t;
int i,j,k;
double a[N],b[N],sum[N];
int main()
{
cin>>n>>k;
double maxx=0;
for(int i=1;i<=n;i++) { sf(a[i]); maxx=max(maxx,a[i]); }
double eps=1e-4;
double l=0,r=maxx;
while(r-l>eps)
{
double mid=(l+r)/2;
for(int i=1;i<=n;i++) //答案轉變爲使得長度大於 L 的序列和大於 0
{
b[i]=a[i]-mid;
sum[i]=sum[i-1]+b[i];
}
double ans=-1e10;
double minn=1e10;
for(int i=k;i<=n;i++)
{
minn=min(minn,sum[i-k]);
ans=max(ans,sum[i]-minn);
}
if(ans>=0) l=mid;
else r=mid; //記錄最大值
}
pd( int ( r*1000 ) );
//PAUSE;
return 0;
}