#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  vector<int> arr(n);
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
  }
  sort(arr.rbegin(), arr.rend());
  int count = 0, sockets = k;
  while (sockets < m && count < n) {
    sockets += arr[count] - 1;
    count++;
  }
  if (sockets < m)
    cout << -1 << endl;
  else
    cout << count << endl;
  return 0;
}
