#include <bits/stdc++.h>
using namespace std;
int mark[305];
priority_queue<int> q;
int main() {
  int m, t, r, x;
  int ans = 0;
  int cur = 0;
  scanf("%d%d%d", &m, &t, &r);
  if (t < r) {
    printf("-1");
    return 0;
  }
  for (int i = 0; i < m; i++) scanf("%d", &x), mark[x]++;
  for (int i = 1; i <= 300; i++) {
    while (!q.empty() && -q.top() <= i) cur--, q.pop();
    if (mark[i] && cur < r) {
      for (int k = 0; k < r - cur; k++) q.push(-(i + t - k));
      ans += r - cur;
      cur = r;
    }
  }
  printf("%d", ans);
  return 0;
}
