#include <bits/stdc++.h>
using namespace std;
int main() {
  int i, j, k;
  int dis[310][310];
  int m, t, r;
  int w[310];
  int disp[305];
  int sum = 0;
  int x;
  memset(w, 0, sizeof(w));
  memset(dis, 0, sizeof(dis));
  scanf("%d%d%d", &m, &t, &r);
  for (i = 0; i < m; i++) {
    scanf("%d", &x);
    w[x] = 1;
  }
  int la = t - r;
  if (la < 0) {
    printf("-1\n");
    return 0;
  }
  int f = 0;
  for (i = 0; i < 302; i++) {
    if (w[i]) {
      f = 0;
      for (j = 0; j < r; j++) {
        if (i == 0 || dis[j][i - 1] <= 1) {
          dis[j][i] = t - f;
          disp[j] = dis[j][i];
          sum++;
          f++;
        } else {
          if (i > 0 && dis[j][i - 1] > 0) {
            dis[j][i] = dis[j][i - 1] - 1;
            disp[j] = dis[j][i];
          }
        }
      }
    } else {
      for (j = 0; j < r; j++) {
        if (i > 0 && dis[j][i - 1] > 0) {
          dis[j][i] = dis[j][i - 1] - 1;
          disp[j] = dis[j][i];
        }
      }
    }
  }
  printf("%d\n", sum);
}
