#include <bits/stdc++.h>
using namespace std;
int x, y, a, b, r, m, t, pr;
int poc, kraj, uk;
int drvo[2000], sveca[2000];
void apdejt(int a, int b) {
  while (a <= 2000) {
    drvo[a] += b;
    a += (a & -a);
  }
}
int koliko(int a) {
  int zbir = 0;
  while (a > 0) {
    zbir += drvo[a];
    a -= (a & -a);
  }
  return zbir;
}
void solve() {
  cin >> m >> t >> r;
  uk = 0;
  for (int i = 0; i < m; i++) {
    cin >> a;
    a += 500;
    if (koliko(a) >= r) continue;
    kraj = r - koliko(a);
    for (int j = 0; j < kraj; j++) {
      x = -1;
      for (int z = a - 1; z >= a - t; z--) {
        if (sveca[z] == 0) {
          sveca[z] = 1;
          uk++;
          apdejt(z, 1);
          apdejt(z + t + 1, -1);
          x = 1;
          break;
        }
      }
      if (x == -1) {
        cout << "-1" << endl;
        return;
      }
    }
  }
  cout << (uk) << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  int t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
