#include <bits/stdc++.h>
using namespace std;
const int N = 10001, oo = 1 << 29;
const long long ooo = 1ll << 59;
const long long ADD = 1e9;
int n, m, k;
int arr[N];
int main() {
  cin >> n >> m >> k;
  for (int i = 0; i < n; ++i) {
    cin >> arr[i];
  }
  sort(arr, arr + n);
  reverse(arr, arr + n);
  if (m <= k)
    cout << 0 << endl;
  else {
    m -= (k - 1);
    int ans = 0;
    int i = 0;
    while (m && (i < n)) {
      ++ans;
      if (m <= arr[i]) {
        m = 0;
      } else {
        m -= (arr[i] - 1);
      }
      ++i;
    }
    if (m == 0)
      cout << ans << endl;
    else
      cout << -1 << endl;
  }
  return 0;
}
