#include <bits/stdc++.h>
using namespace std;
int vet[310];
map<int, int> quant;
map<int, int> vis;
int main() {
  int m, t, r;
  scanf("%d %d %d", &m, &t, &r);
  int i, j, k;
  for (i = 1; i <= m; i++) {
    scanf("%d", &vet[i]);
  }
  int pode = 1;
  int tot = 0;
  for (i = 1; i <= m; i++) {
    j = vet[i] - 1;
    while (1) {
      if (quant[vet[i]] >= r) {
        break;
      }
      if (j + t < vet[i]) {
        break;
      }
      if (vis[j] == 0) {
        vis[j] = 1;
        tot++;
        for (k = 1; k <= t; k++) {
          quant[j + k]++;
        }
      }
      j--;
    }
    if (quant[vet[i]] < r) {
      pode = 0;
    }
  }
  if (pode == 1) {
    printf("%d\n", tot);
  } else {
    printf("-1\n");
  }
  return 0;
}
