#include <bits/stdc++.h>
using namespace std;
typedef struct {
  long long int a, b;
  long long int ant;
  long long int prox;
} no;
long long int n, m, k;
no fita[100010];
long long int pQ;
set<pair<long long int, long long int> > S;
int main() {
  scanf("%lld %lld %lld", &n, &m, &k);
  long long int total = 0;
  pQ = 0;
  long long int ini = 0;
  long long int tamlista = 0;
  for (long long int i = 0; i < n; i++) {
    long long int a;
    scanf("%lld", &a);
    tamlista++;
    long long int r = pQ++;
    fita[r].a = a;
    fita[r].b = a;
    if (i > 0)
      fita[r].ant = r - 1;
    else
      fita[r].ant = -1;
    if (i + 1 < n)
      fita[r].prox = pQ;
    else
      fita[r].prox = -1;
    total++;
  }
  S.clear();
  for (long long int r = ini; fita[r].prox != -1; r = fita[r].prox) {
    long long int d = fita[fita[r].prox].a - fita[r].b - 1;
    S.insert(pair<long long int, long long int>(d, r));
  }
  while (tamlista > k) {
    long long int u = S.begin()->second;
    S.erase(S.begin());
    if (fita[u].ant != -1) {
      fita[fita[u].ant].prox = fita[u].prox;
    }
    fita[fita[u].prox].ant = fita[u].ant;
    tamlista--;
    total -= fita[u].b - fita[u].a + 1;
    total -= fita[fita[u].prox].b - fita[fita[u].prox].a + 1;
    fita[fita[u].prox].a = fita[u].a;
    total += fita[fita[u].prox].b - fita[fita[u].prox].a + 1;
  }
  printf("%lld\n", total);
  return 0;
}
