#include <bits/stdc++.h>
using namespace std;
const int MAXN = 300 + 10;
int mp[MAXN];
int main() {
  int m, t, r;
  while (cin >> m >> t >> r) {
    queue<int> q;
    int ans = r;
    for (int i = 0; i < m; i++) cin >> mp[i];
    if (t < r) {
      cout << "-1\n";
      continue;
    }
    for (int i = r; i > 0; i--) {
      q.push(mp[0] - i + t);
    }
    for (int i = 1; i < m; i++) {
      int n = 0;
      while (!q.empty()) {
        int cur = q.front();
        if (cur < mp[i]) {
          n++;
          q.pop();
        } else
          break;
      }
      ans += n;
      for (int j = n; j > 0; j--) {
        q.push(mp[i] - j + t);
      }
    }
    cout << ans << endl;
  }
  return 0;
}
