#include <stdio.h>
using namespace std;
#define N 100010
#define max(x,y) ((x)>(y)?(x):(y))
typedef long long LL;
int s[N];
struct point {
int x, y;
point(){}
point(int x,int y):x(x),y(y){}
}p[N];
point operator - (const point &a, const point &b) { return point(a.x-b.x, a.y-b.y); }
LL operator ^ (const point &a, const point &b) { return (LL)a.x*b.y - (LL)a.y*b.x; }
inline int get(){
int s=0;
char c;
while(c=getchar(),c!=' '&&c!='\n')s=s*10+c-'0';
return s;
}
int main() {
int n,k;
s[0]=0;
while (~scanf("%d ",&n)){
k=get();n++;
for(int i=1;i<n;++i){
s[i]=get();
s[i]+=s[i-1];
}
double ans=0;
for(int i=k,m=-1,f=0;i<n;++i){
point now(i-k,s[i-k]);
while(f<m&&(p[m]-p[m-1]^now-p[m-1])<0)--m;
p[++m]=now;
while(f<m&&(LL)(s[i]-p[f].y)*(i-p[f+1].x)<(LL)(s[i]-p[f+1].y)*(i-p[f].x))f++;
ans=max(ans,double(s[i]-p[f].y)/(i-p[f].x));
}
printf("%.2lf\n",ans);
}
}