#include <iostream>
using namespace std;

int n,k;
int a[300000];
bool l[300000];
int findL()
{
    int maxi=0;
    int maxpos =0;
    for(int i=0;i<n;i++)
    {
        if(maxi<a[i] && l[i]==false)
        {
            maxi=a[i];
            maxpos=i;
        }
    }
    l[maxpos]=true;
    return maxpos;
}
void read()
{
        cin>>n;
    cin>>k;
    for (int i=0;i<n;i++)
        cin>>a[i];
}
double getsa(int start)
{
    int br=0;
    double maxsa=0;
    for(int i=start;i<n;i++)
    {
        br=br+a[i];
        if(i-start+1>=k)
        {
            maxsa=max(maxsa,br/double(i-start+1));
        }
    }
    br=0;
    for(int i=start;i>=0;i--)
    {
        br=br+a[i];
        if(start-i+1>=k)
        {
            maxsa=max(maxsa,br/double(start-i+1));
        }
    }
    return maxsa;
}
void calc()
{
    double maxsa;
    while(true)
    {
        double sa = getsa(findL());
        if(sa<maxsa)break;
        maxsa=sa;
    }
    for(int i=0;i<900;i++)
    {
        double sa = getsa(findL());
        if(sa<maxsa)continue;
        maxsa=sa;
    }
    cout<<maxsa<<endl;
}
int main()
{
    read();
    calc();
    return 0;
}
