main = do
  li <- getLine
  let [n,k] = map read $ words li
  li <- getLine
  let ps = map read $ words li
  let ans = compute n k ps
  let a2 = show $ div ans 2
  putStrLn (if even ans then a2 else a2 ++ ".5")

{-
1～pが等確率ででるときの期待値は、
sum 1～p/p = p(p+1)/2p = (p+1)/2
ずっと２倍-1で整数で計算しよう。

先頭k個の和をタネとして求める
pi <- psとp(i+k) <- drop k psを使って、
seed + p(i+k) - pi
が次のk個の和、と順に求められる
-}
compute :: Int -> Int -> [Int] -> Int
compute n k ps = k + maximum ss
  where
    s0 = sum $ take k ps
    ss = scanl step s0 $ zip ps $ drop k ps

step s (pi,pik) = s + pik - pi
