#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const long long MAXN = 4e6 + 30;
const long long MINN = 1e3 + 20;
const long long MOD2 = 998244353ll;
const long long INF = 2242545357980376863;
const long double EPS = 1e-9;
long long gcd(long long a, long long b) { return (b ? gcd(b, a % b) : a); }
long long mod(long long n) {
  while (n < 0) n += MOD;
  return n % MOD;
}
long long pow(long long a, long long b) {
  return (!b ? 1 : pow(a, b / 2) * pow(a, b / 2) * (b % 2 ? a : 1));
}
long long Can[MAXN];
int Main() {
  long long m, t, r;
  cin >> m >> t >> r;
  long long ans = 0;
  if (r > t) return cout << -1, 0;
  for (int i = 0; i < m; i++) {
    long long x;
    cin >> x;
    for (int j = x - 1; Can[x] < r; j--) {
      for (int k = j + 1; k <= t + j; k++)
        if (k > 0) Can[k]++;
      ans++;
    }
  }
  cout << (r > t ? -1 : ans);
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  int q;
  q = 1;
  while (q--) Main();
  return 0;
}
