module app;

import core.bitop;

import std.algorithm;
import std.array;
import std.bigint;
import std.conv;
import std.stdio;
import std.string;

struct Input
{
	int n, k;
	int[] p;
}

void parseInput(T)(out Input input, T file)
{
	with (file) with (input)
	{
		auto array = readln().strip().split();
		n = array[0].to!int;
		k = array[1].to!int;
        p = readln().strip().split().map!(to!int).array();
	}
}

struct Output
{
}

auto main2(Input* input)
{
    int max = sum(input.p[0..input.k]);
    int prev = max;
    int i = input.k;
    while (i < input.n)
    {
        int current = prev - input.p[i - input.k] + input.p[i];
        if (current > max)
            max = current;
        prev = current;
        i++;
    }

	return (cast(real)(max + input.k)) / 2.0;
}

void main()
{
	Input input = void;
	parseInput(input, stdin);
	auto result = main2(&input);
	writefln("%f", result);
}
