#include <bits/stdc++.h>
using namespace std;
int vis[610];
int push[610];
int main() {
  int m, t, r;
  scanf("%d%d%d", &m, &t, &r);
  int tmp;
  int sum = 0;
  for (int i = 1; i <= m; i++) {
    scanf("%d", &tmp);
    tmp = tmp + 300;
    if (vis[tmp] >= r)
      continue;
    else {
      if (i == 1) {
        sum += r;
        for (int j = tmp - 1; j >= tmp - r; j--) push[j] = 1;
        for (int j = tmp - r; j <= tmp - 1; j++) {
          for (int l = j + 1; l <= j + t; l++) vis[l] += 1;
        }
      } else {
        sum += (r - vis[tmp]);
        for (int j = tmp - 1; j >= tmp - r; j--) {
          if (push[j] == 0) {
            push[j] = 1;
            for (int l = j + 1; l <= j + t; l++) vis[l]++;
            if (vis[tmp] >= r) {
              break;
            }
          }
        }
      }
    }
  }
  if (t < r) {
    printf("-1\n");
    return 0;
  }
  printf("%d\n", sum);
}
