#include <bits/stdc++.h>
using namespace std;
#define N 105
long long m, n, a[N], X=0;
bool compar(long long a, long long b)
{
return b<a;
}
long long findD(long long mid){
long long s=0, c=0, i=0;
while(i<n){
int j = i;
while(j<n && j < i+mid){
s += max(X, a[j] - c);
j++;
}
c++;
i=j;
}
return s;
}
int main()
{
long long ans = 10000000;
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a, a+n, compar);
long long lo = 1, hi = n;
bool f = 0;
while(lo <= hi) {
long long mid = lo + (hi-lo+1)/2;
long long s = findD(mid);
if(s >= m){
ans = min(ans, mid);
hi=mid-1;
f=1;
}
else{
lo=mid+1;
}
}
if(f){
cout<<ans;
}
else cout<<-1;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIE4gMTA1CmxvbmcgbG9uZyBtLCBuLCBhW05dLCBYPTA7CmJvb2wgY29tcGFyKGxvbmcgbG9uZyBhLCBsb25nIGxvbmcgYikKewogICAgcmV0dXJuIGI8YTsKfQpsb25nIGxvbmcgZmluZEQobG9uZyBsb25nIG1pZCl7CiAgICBsb25nIGxvbmcgcz0wLCBjPTAsIGk9MDsKICAgIHdoaWxlKGk8bil7CiAgICAgICAgaW50IGogPSBpOwogICAgICAgIHdoaWxlKGo8biAmJiBqIDwgaSttaWQpewogICAgICAgICAgICBzICs9IG1heChYLCBhW2pdIC0gYyk7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgYysrOwogICAgICAgIGk9ajsKICAgIH0KICAgIHJldHVybiBzOwp9CmludCBtYWluKCkKewoJbG9uZyBsb25nIGFucyA9IDEwMDAwMDAwOwogICAgY2luPj5uPj5tOwogICAgCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgIGNpbj4+YVtpXTsKICAgICAgICAKICAgIHNvcnQoYSwgYStuLCBjb21wYXIpOwogICAgICAgIAogICAgbG9uZyBsb25nIGxvID0gMSwgaGkgPSBuOwogICAgYm9vbCBmID0gMDsKICAgIAogICAgd2hpbGUobG8gPD0gaGkpIHsKICAgICAgICBsb25nIGxvbmcgbWlkID0gbG8gKyAoaGktbG8rMSkvMjsKICAgICAgICAKICAgICAgICBsb25nIGxvbmcgcyA9IGZpbmREKG1pZCk7CiAgICAgICAgCiAgICAgICAgaWYocyA+PSBtKXsKICAgICAgICAJYW5zID0gbWluKGFucywgbWlkKTsKICAgICAgICAgICAgaGk9bWlkLTE7CiAgICAgICAgICAgIGY9MTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgbG89bWlkKzE7CiAgICAgICAgfQogICAgfQogICAgCiAgICBpZihmKXsKICAgICAgICBjb3V0PDxhbnM7CiAgICB9CiAgICBlbHNlIGNvdXQ8PC0xOwoKICAgIHJldHVybiAwOwp9Cg==