#include <bits/stdc++.h>
using namespace std;
const int N = 101;
const int mx = 1e6+1;
int n, S, a[N], dp[mx];
// Gọi dp[i] là số giờ ít nhất để tạo thành số dinh dưỡng i
// Bài toán quy về dạng dijsktra: Từ đỉnh u có thể đi đến các đỉnh v = u + a[i] (v <= S) với w = dp[u] + 1 + i
int main(){
// icebear hehehhe
// freopen("DOCTOR.inp", "r", stdin);
// freopen("DOCTOR.out", "w", stdout);
cin.tie(0) -> sync_with_stdio(0);
cin >> n >> S;
for(int i=1; i<=n; ++i) cin >> a[i];
priority_queue<pair<int, int>> q;
memset(dp, 0x3f, sizeof dp);
q.push(make_pair(-1, 0));
dp[0] = -1;
while(!q.empty()){
int du = q.top().first;
int u = q.top().second;
q.pop();
if (du != dp[u]) continue;
if (u == S){
cout << dp[u];
exit(0);
}
for(int i=1; i<=n; ++i){
u += a[i];
if (u > S) break;
if (dp[u] > du + i + 1)
q.push(make_pair(dp[u] = du + i + 1, u));
}
}
cout << -1;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDEwMTsKY29uc3QgaW50IG14ID0gMWU2KzE7CmludCBuLCBTLCBhW05dLCBkcFtteF07Ci8vIEfhu41pIGRwW2ldIGzDoCBz4buRIGdp4budIMOtdCBuaOG6pXQgxJHhu4MgdOG6oW8gdGjDoG5oIHPhu5EgZGluaCBkxrDhu6FuZyBpCi8vIELDoGkgdG/DoW4gcXV5IHbhu4EgZOG6oW5nIGRpanNrdHJhOiAgVOG7qyDEkeG7iW5oIHUgY8OzIHRo4buDIMSRaSDEkeG6v24gY8OhYyDEkeG7iW5oICB2ID0gdSArIGFbaV0gKHYgPD0gUykgduG7m2kgdyA9IGRwW3VdICsgMSArIGkKCmludCBtYWluKCl7Ci8vICBpY2ViZWFyIGhlaGVoaGUKICAgIC8vIGZyZW9wZW4oIkRPQ1RPUi5pbnAiLCAiciIsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oIkRPQ1RPUi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICBjaW4udGllKDApIC0+IHN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbiA+PiBuID4+IFM7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgKytpKSBjaW4gPj4gYVtpXTsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8aW50LCBpbnQ+PiBxOwogICAgbWVtc2V0KGRwLCAweDNmLCBzaXplb2YgZHApOwogICAgcS5wdXNoKG1ha2VfcGFpcigtMSwgMCkpOwogICAgZHBbMF0gPSAtMTsKICAgIHdoaWxlKCFxLmVtcHR5KCkpewogICAgICAgIGludCBkdSA9IHEudG9wKCkuZmlyc3Q7CiAgICAgICAgaW50IHUgPSBxLnRvcCgpLnNlY29uZDsKICAgICAgICBxLnBvcCgpOwoKICAgICAgICBpZiAoZHUgIT0gZHBbdV0pIGNvbnRpbnVlOwogICAgICAgIGlmICh1ID09IFMpewogICAgICAgICAgICBjb3V0IDw8IGRwW3VdOwogICAgICAgICAgICBleGl0KDApOwogICAgICAgIH0KCiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47ICsraSl7CiAgICAgICAgICAgIHUgKz0gYVtpXTsKICAgICAgICAgICAgaWYgKHUgPiBTKSBicmVhazsKICAgICAgICAgICAgaWYgKGRwW3VdID4gZHUgKyBpICsgMSkKICAgICAgICAgICAgICAgIHEucHVzaChtYWtlX3BhaXIoZHBbdV0gPSBkdSArIGkgKyAxLCB1KSk7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCAtMTsKICAgIHJldHVybiAwOwp9Cg==