#for内でその都度sumをとるのはまずいらしい

n,k = list(map(int,input().split()))

p = list(map(int,input().split()))

ave = []

ans = 0

tmp = 0



for i in range(n):

  ave.append((p[i]+1)/2)



for j in range(n):

  tmp += ave[j]

  if j >= k:

    tmp -= ave[j-k]

    

  ans = max(ans,tmp)





print(ans)
#累積和　都度sum（O(n)）を取っていると，O(n^2)になってしまう

import itertools

 

n, k = list(map(int, input().split()))

p = list(map(int, input().split()))

acc = [0] + list(itertools.accumulate([(x+1)/2 for x in p])) 

 

ans = max(acc[i+k]-acc[i] for i in range(n-k+1)) 

print(ans)
# for内でその都度sumをとるのはまずいらしい
n, k = list(map(int, input().split()))
p = list(map(int, input().split()))
ave = []
ans = 0
tmp = 0
for i in range(n):
    ave.append((p[i] + 1) / 2)
for j in range(n):
    tmp += ave[j]
    if j >= k:
        tmp -= ave[j - k]
    ans = max(ans, tmp)
print(ans)

# 累積和　都度sum（O(n)）を取っていると，O(n^2)になってしまう
import itertools

n, k = list(map(int, input().split()))
p = list(map(int, input().split()))
acc = [0] + list(itertools.accumulate([(x + 1) / 2 for x in p]))
ans = max(acc[i + k] - acc[i] for i in range(n - k + 1))
print(ans)

-# for内でその都度sumをとるのはまずいらしい +# 累積和　都度sum（O(n)）を取っていると，O(n^2)になってしまう +import itertools + -ave = [] -ans = 0 -tmp = 0 -for i in range(n): -    ave.append((p[i] + 1) / 2) -for j in range(n): -    tmp += ave[j] -    if j >= k: -        tmp -= ave[j - k] -    ans = max(ans, tmp) +acc = [0] + list(itertools.accumulate([(x + 1) / 2 for x in p])) +ans = max(acc[i + k] - acc[i] for i in range(n - k + 1))