# include <iostream>
# include <fstream>
# include <sstream>
# include <algorithm>
# include <numeric>
# include <cstdio>
# include <cmath>
# include <cstdlib>
# include <cstring>
# include <vector>
# include <list>
# include <set>
# include <map>
# include <stack>
# include <queue>
# include <cctype>
# include <climits>
# include <complex>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vector<int> > vvi;
#define GI ({int t;scanf("%d",&t);t;})
#define REP(i,a,b) for(int i=a;i<b;i++)
#define ALL(v) (v).begin(),(v).end()
#define TR(i,x) for(typeof(x.begin()) i=x.begin();i!=x.end();i++)
#define pb push_back
#define mp make_pair
#define INF (int)1e9
#define EPS (double)(1e-9)
#define PI (double)(3.141592653589793)
int main()
{
int n,m,k,a[55],sum=0,direct,indirect;
cin>>n>>m>>k;
REP(i,0,n) a[i]=GI;
if(k>=m)
{printf("0\n");return 0;}
sort(a,a+n,greater<int>());
REP(i,0,k)
{
sum+=a[i];
if(sum+(k-i-1)>=m)
{printf("%d\n",i+1);return 0;}
}
REP(i,k,min(k+sum,n))
{
sum+=(a[i]-1);
if(sum>=m)
{printf("%d\n",i+1); return 0;}
}
printf("-1\n");
return 0;
}
IyBpbmNsdWRlIDxpb3N0cmVhbT4KIyBpbmNsdWRlIDxmc3RyZWFtPgojIGluY2x1ZGUgPHNzdHJlYW0+CiMgaW5jbHVkZSA8YWxnb3JpdGhtPgojIGluY2x1ZGUgPG51bWVyaWM+CiMgaW5jbHVkZSA8Y3N0ZGlvPgojIGluY2x1ZGUgPGNtYXRoPgojIGluY2x1ZGUgPGNzdGRsaWI+CiMgaW5jbHVkZSA8Y3N0cmluZz4KIyBpbmNsdWRlIDx2ZWN0b3I+CiMgaW5jbHVkZSA8bGlzdD4KIyBpbmNsdWRlIDxzZXQ+CiMgaW5jbHVkZSA8bWFwPgojIGluY2x1ZGUgPHN0YWNrPgojIGluY2x1ZGUgPHF1ZXVlPgojIGluY2x1ZGUgPGNjdHlwZT4KIyBpbmNsdWRlIDxjbGltaXRzPgojIGluY2x1ZGUgPGNvbXBsZXg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgTEw7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVMTDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8dmVjdG9yPGludD4gPiB2dmk7CgojZGVmaW5lIEdJICh7aW50IHQ7c2NhbmYoIiVkIiwmdCk7dDt9KQojZGVmaW5lIFJFUChpLGEsYikgZm9yKGludCBpPWE7aTxiO2krKykKI2RlZmluZSBBTEwodikgKHYpLmJlZ2luKCksKHYpLmVuZCgpCiNkZWZpbmUgVFIoaSx4KSBmb3IodHlwZW9mKHguYmVnaW4oKSkgaT14LmJlZ2luKCk7aSE9eC5lbmQoKTtpKyspCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgSU5GIChpbnQpMWU5CiNkZWZpbmUgRVBTIChkb3VibGUpKDFlLTkpCiNkZWZpbmUgUEkgKGRvdWJsZSkoMy4xNDE1OTI2NTM1ODk3OTMpCgppbnQgbWFpbigpCnsKICAgIGludCBuLG0sayxhWzU1XSxzdW09MCxkaXJlY3QsaW5kaXJlY3Q7CgljaW4+Pm4+Pm0+Pms7CglSRVAoaSwwLG4pCWFbaV09R0k7CglpZihrPj1tKQoJCXtwcmludGYoIjBcbiIpO3JldHVybiAwO30KCXNvcnQoYSxhK24sZ3JlYXRlcjxpbnQ+KCkpOwoJUkVQKGksMCxrKQoJewoJCXN1bSs9YVtpXTsKCQlpZihzdW0rKGstaS0xKT49bSkKCQkJe3ByaW50ZigiJWRcbiIsaSsxKTtyZXR1cm4gMDt9Cgl9CglSRVAoaSxrLG1pbihrK3N1bSxuKSkKCXsKCQlzdW0rPShhW2ldLTEpOwoJCWlmKHN1bT49bSkKCQkJe3ByaW50ZigiJWRcbiIsaSsxKTsgcmV0dXJuIDA7fQoJfQoJcHJpbnRmKCItMVxuIik7CglyZXR1cm4gMDsKfQoK