n, m, k = map(int, input().split())
filters = [int(i) for i in input().split()]
filters.sort()
ports = k
count = 0
while ports < m and filters:
ports += filters[-1] - 1
filters.pop()
count += 1
if ports >= m:
print(count)
else:
print(-1)
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int MOD = 1e9 + 7;
const int INF = LLONG_MAX >> 1;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,m,k;
cin >> n >> m >> k;
int a[n];
for(int i = 0; i < n; ++i)cin >> a[i];
sort(a,a+n, greater<int>());
if(k >= m)cout << "0";
else{
int sum = a[0] + k - 1;
if(sum >= m){
cout << "1";
return 0;
}
else{
for(int i = 1; i < n; ++i){
sum += a[i] - 1;
// cout << sum << i << endl;
if(sum >= m){
cout << i+1;
return 0;
}
}
}
cout << "-1";
}
}
43A - Football | 50A - Domino piling |
479A - Expression | 1480A - Yet Another String Game |
1216C - White Sheet | 1648A - Weird Sum |
427A - Police Recruits | 535A - Tavas and Nafas |
581A - Vasya the Hipster | 1537B - Bad Boy |
1406B - Maximum Product | 507B - Amr and Pins |
379A - New Year Candles | 1154A - Restoring Three Numbers |
750A - New Year and Hurry | 705A - Hulk |
492B - Vanya and Lanterns | 1374C - Move Brackets |
1476A - K-divisible Sum | 1333A - Little Artem |
432D - Prefixes and Suffixes | 486A - Calculating Function |
1373B - 01 Game | 1187A - Stickers and Toys |
313B - Ilya and Queries | 579A - Raising Bacteria |
723A - The New Year Meeting Friends | 302A - Eugeny and Array |
1638B - Odd Swap Sort | 1370C - Number Game |