#include <bits/stdc++.h>
using namespace std;
const int MAXN = 600 + 20;
int ww[MAXN];
int main() {
  int m, t, r;
  while (scanf("%d%d%d", &m, &t, &r) != EOF) {
    memset(ww, 0, sizeof(ww));
    for (int i = 0; i < m; i++) {
      int w;
      scanf("%d", &w);
      ww[w + MAXN / 2] = 1;
    }
    int tot = 0;
    int yes = 0;
    for (int i = MAXN / 2; i < MAXN; i++) {
      int rr = r;
      if (ww[i] == 1) {
        for (int j = i - t + 1; j <= i; j++) {
          if (ww[j] == 2) {
            rr--;
            if (rr == 0) break;
          }
        }
        if (rr == 0) continue;
        for (int j = i; j > i - t; j--) {
          if (ww[j] != 2) {
            tot++;
            ww[j] = 2;
            rr--;
            if (rr == 0) break;
          }
        }
        if (rr > 0) {
          printf("-1\n");
          yes = 1;
          break;
        }
      }
    }
    if (!yes) {
      printf("%d\n", tot);
    }
  }
  return 0;
}
