#include <bits/stdc++.h>
using namespace std;
int main() {
  int m, t, r, w, tot = 0, dp[3000], cnt, add;
  memset(dp, 0, sizeof(dp));
  cin >> m >> t >> r;
  if (r > t) {
    cout << -1 << endl;
    return 0;
  }
  for (int i = 0; i < m; i++) {
    cin >> w;
    cnt = add = 0;
    for (int i = 400 + w - 1; i >= 400 + w - t; i--) {
      if (dp[i] == 1) {
        cnt++;
      }
    }
    if (cnt >= r) {
      continue;
    }
    for (int i = 400 + w - 1; i >= 400 + w - t; i--) {
      if (dp[i] != 1) {
        cnt++;
        add++;
        dp[i] = 1;
      }
      if (cnt == r) break;
    }
    if (cnt < r) {
      cout << -1 << endl;
      return 0;
    }
    tot += add;
  }
  cout << tot << endl;
  return 0;
}
