#include <bits/stdc++.h>
using namespace std;
int m, r, t, ans, dp[4010];
bool mark[4010];
vector<int> v;
int main() {
  cin >> m >> t >> r;
  for (int i = 0; i < m; ++i) {
    int a;
    cin >> a;
    a += 4 * 1e2;
    int an = 0;
    v.clear();
    for (int s = a - 1; s >= a - t; --s) {
      if (!mark[s])
        v.push_back(s);
      else
        an++;
    }
    int x = r - an, k = 0;
    int e = v.size();
    for (int i = 0; i < min(x, e); ++i) {
      mark[v[i]] = true;
      k++;
    }
    if (an + k < r) {
      cout << -1 << endl;
      return 0;
    }
  }
  int ans = 0;
  for (int i = 0; i < 2000; ++i) ans += mark[i];
  cout << ans << endl;
}
