n, p = map(int, input().split()) h = list(map(int, input().split())) up = [] for i in range(n-1): diff = h[i+1] - h[i] up.append(max(0, diff)) total_up = sum(up) max_gain = 0 current_sum = 0 for u in up: current_sum += u candidate = current_sum - p if candidate > 0: if candidate > max_gain: max_gain = candidate else: current_sum = 0 # Reset if this segment isn't beneficial print(total_up - max_gain)