import heapq
def jumping_stones(stones, m):
n = len(stones)
distance = []
for i in range(1, n):
distance.append(stones[i] - stones[i - 1])
heapq.heapify(distance)
for _ in range(m):
first = heapq.heappop(distance)
second = heapq.heappop(distance)
heapq.heappush(distance, first + second)
return distance[0]
if __name__ == '__main__':
stones = [0]
nums = [int(num) for num in input().split()]
l = nums[0]
n = nums[1]
m = nums[2]
for i in range(n):
stones.append(int(input()))
stones.append(l)
print(jumping_stones(stones, m))