#include <bits/stdc++.h>
using namespace std;
unsigned long long mod = 1000000007;
int main() {
  int supply_lines, devices, available;
  cin >> supply_lines >> devices >> available;
  int ret = 0;
  vector<int> v;
  while (supply_lines--) {
    int tmp;
    cin >> tmp;
    v.push_back(tmp);
  }
  sort(v.begin(), v.end());
  int f = 0;
  while (available < devices and !v.empty()) {
    available -= 1;
    available += v.back();
    v.pop_back();
    ret++;
    if (v.empty() and available < devices) {
      f = 1;
      break;
    }
  }
  if (f == 0)
    cout << ret << endl;
  else
    cout << "-1" << endl;
  return 0;
}
