N,K = map(int,input().split()) A = list(map(int,input().split())) Sum_A = sum(A) Sum_K = sum(A[K:]) #Aの最小値をx Pi = Sum_A - A[0]*N Ri = sum(A[:K]) - A[0]*(K) #プラスのもの Qi = Pi - Ri ans = Pi - 2*Qi #print(Pi,Qi,ans) if K == 0: #Aの最大値をx PN = A[N-1]*N - sum(A) QN = A[N-1]*(N-K) - sum(A[:N-K]) #print(PN,QN) ans = min(ans,PN-2*QN) print(ans);exit() left = 0; right = K-1 for i in range(1,N): p_left = left; p_right = right d = A[i] - A[i-1] Ri+= d*(i - left) - d*(right - i + 1) while right < N-1 and abs(A[left] - A[i]) > abs(A[right+1] - A[i]): Ri -= abs(A[left] - A[i]) #大きくなった左を取り除く left += 1 Ri += abs(A[right+1] - A[i]) #小さくなった右を加える right += 1 #print(left,right,i) Pi += d*i - d*(N-i) Qi = Pi - Ri #print(Pi,Ri,Qi) temp = Pi - 2*Qi ans = min(ans,temp) print(ans)