#include <bits/stdc++.h>
using namespace std;
int main() {
long long N, M, A[100001];
while(cin >> N >> M) {
long long total = 0;
for(int i = 0; i < N; i++) {
cin >> A[i];
total += A[i];
}
if(total < M) {
cout << -1 << endl;
continue;
}
sort(A, A+M, greater<int>());
int lo = 0, hi = 1000000, mid;
while(hi > lo) {
mid = (lo+hi+1)/2;
// cout << lo << " " << mid << " " << hi << " ";
long long kayu = 0LL;
for(int i = 0; i < N; i++)
if(mid <= A[i])
kayu += A[i]-mid;
// cout << kayu << endl;
if(kayu >= M)
lo = mid;
else
hi = mid-1;
}
cout << lo << endl;
}
return 0;
}
/*
potong(X) = banyak kayu yang didapat klo
dipotong di ketinggian X
potong(X) > potong(X+1) (decreasing)
yang dicari adalah nilai X sedemikian sehingga:
potong(X) >= M && potong(X+1) < M
binser untuk nilai X
cek dari masing2 pohon dapat berapa kayu, jumlahkan
O(log(Ai) * log(N))
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWxvbmcgbG9uZyBOLCBNLCBBWzEwMDAwMV07Cgl3aGlsZShjaW4gPj4gTiA+PiBNKSB7CgkJbG9uZyBsb25nIHRvdGFsID0gMDsKCQlmb3IoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CgkJCWNpbiA+PiBBW2ldOwoJCQl0b3RhbCArPSBBW2ldOwoJCX0KCQlpZih0b3RhbCA8IE0pIHsKCQkJY291dCA8PCAtMSA8PCBlbmRsOwoJCQljb250aW51ZTsKCQl9CgkJc29ydChBLCBBK00sIGdyZWF0ZXI8aW50PigpKTsKCQlpbnQgbG8gPSAwLCBoaSA9IDEwMDAwMDAsIG1pZDsKCQl3aGlsZShoaSA+IGxvKSB7CgkJCW1pZCA9IChsbytoaSsxKS8yOwoJCQkvLyBjb3V0IDw8IGxvIDw8ICIgIiA8PCBtaWQgPDwgIiAiIDw8IGhpIDw8ICIgIjsKCQkJbG9uZyBsb25nIGtheXUgPSAwTEw7CgkJCWZvcihpbnQgaSA9IDA7IGkgPCBOOyBpKyspCgkJCQlpZihtaWQgPD0gQVtpXSkKCQkJCQlrYXl1ICs9IEFbaV0tbWlkOwoJCQkvLyBjb3V0IDw8IGtheXUgPDwgZW5kbDsKCQkJaWYoa2F5dSA+PSBNKQoJCQkJbG8gPSBtaWQ7CgkJCWVsc2UKCQkJCWhpID0gbWlkLTE7CgkJfQoJCWNvdXQgPDwgbG8gPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9CgovKgpwb3RvbmcoWCkgPSBiYW55YWsga2F5dSB5YW5nIGRpZGFwYXQga2xvCiAgICAgICAgICAgIGRpcG90b25nIGRpIGtldGluZ2dpYW4gWApwb3RvbmcoWCkgPiBwb3RvbmcoWCsxKSAoZGVjcmVhc2luZykKeWFuZyBkaWNhcmkgYWRhbGFoIG5pbGFpIFggc2VkZW1pa2lhbiBzZWhpbmdnYToKcG90b25nKFgpID49IE0gJiYgcG90b25nKFgrMSkgPCBNCgpiaW5zZXIgdW50dWsgbmlsYWkgWAogIGNlayBkYXJpIG1hc2luZzIgcG9ob24gZGFwYXQgYmVyYXBhIGtheXUsIGp1bWxhaGthbgogIApPKGxvZyhBaSkgKiBsb2coTikpCiAgCiov