import sys
input = sys.stdin.readline
N = int(input())
K = int(input())
if N <= K: # 만약에 K가 N이랑 같거나 크면 문제 성립이 안되기 때문에 0을 출력 프로그램 종료
print(0)
exit()
position = list(map(int, input().split()))
position.sort() # 거리를 정렬해준다. 인접한 애들끼리 묶어야 하기 때문에
dist = [] # 거리의 차이를 저장할 리스트 변수를 만들어준다.
for i in range(1, N):
dist.append(position[i] - position[i-1]) # 거리의 차이를 저장한다.
dist.sort() # 거리의 차이를 정렬한다.
for _ in range(K-1): # 기지국의 갯수 -1 만큼 높은 거리의 차이를 빼준다.
# why? 가장 거리차이가 많이 나는 곳은 기지국을 새로 세우는 것이 거리상 이득이기 때문에!
dist.pop()
print(sum(dist))
문제가 너무 이해가 안되어서 고민을 오래 했다. 문제가 이해한 뒤에는 금방 풀었다.