#include <bits/stdc++.h>
using namespace std;
int fire[10005], gost[1005];
int main() {
  int m, t, r;
  int shu = 0;
  scanf("%d%d%d", &m, &t, &r);
  int i, j;
  for (i = 0; i < m; i++) {
    scanf("%d", &gost[i]);
    gost[i] += 300;
    if (r > t) {
      printf("-1\n");
      return 0;
    }
    if (i == 0) {
      if (gost[i] - r < 0) {
        printf("-1\n");
        return 0;
      }
    }
    int hehe = 0;
    for (j = gost[i] - 1; j >= 0 && j >= 0 && gost[i] - j <= t; j--) {
      if (fire[j]) hehe++;
    }
    if (hehe >= r) continue;
    for (j = gost[i] - 1; j >= 0 && j >= 0 && gost[i] - j <= t; j--) {
      if (!fire[j]) {
        shu++;
        fire[j] = 1;
        hehe++;
      }
      if (hehe >= r) break;
    }
  }
  printf("%d\n", shu);
  return 0;
}
