#include <bits/stdc++.h>
const long long MXN = 1e6 + 1;
const long long MNN = 1e3 + 1;
const long long MOD = 1e9 + 7;
const long long INF = 1e18;
using namespace std;
long long n, m, b[MXN], mx = -1, mn = INF, a, ans, k, sum, x, q, c[111111];
char ch;
string second, s1;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
  }
  sort(b + 1, b + n + 1);
  reverse(b + 1, b + n + 1);
  m -= k;
  if (m <= 0) {
    cout << 0;
    return 0;
  }
  m++;
  for (int i = 1; i <= n; i++) {
    if (b[i] >= m) {
      cout << i;
      return 0;
    }
    m -= (b[i] - 1);
  }
  cout << -1;
  return 0;
}
