n, k = list(map(int, input().split())) A = list(map(int, input().split())) if sum(A) <= k: print(0) exit() ans = A[0]+A[-1] for i in range(n-1): ans += abs(A[i]-A[i+1]) n += 2 A = [-1] + A + [-1] L = [i for i in range(n)] R = [i+1 for i in range(n)] from heapq import * hq = [] i = 0 while i < n-1: j = i while j < n and A[i] == A[j]: j += 1 if A[i-1] < A[i] and A[i] > A[j]: heappush(hq, (j-i, i, j)) L[i] = L[j-1] = i R[i] = R[j-1] = j i = j while hq and k: t, l, r = heappop(hq) if k < t: break if L[l] != l or R[l] != r: continue a = A[l] a0, a1 = A[l-1], A[r] na = max(a-k//t, a0, a1) ans -= 2*(a-na) k -= (a-na)*t nl, nr = l, r if a0 == na: nl = L[l-1] if a1 == na: nr = R[r] #print(ans, t, l, r, nl, nr, a, na) L[nl] = L[nr-1] = nl R[nl] = R[nr-1] = nr A[nl] = A[nr-1] = na heappush(hq, (nr-nl, nl, nr)) print(ans)