#include <bits/stdc++.h>
using namespace std;
int main() {
const auto next_int = []() { int num; cin >> num; return num; };
auto n = next_int(), x = next_int(), inf = x+1;
vector<int> min_coins(inf,inf);
for (min_coins[0] = 0; n > 0; --n)
for (auto c = next_int(), y = c; y <= x; ++y)
min_coins[y] = min(min_coins[y],min_coins[y-c]+1);
cout << (min_coins[x] == inf ? -1: min_coins[x]);
return 0; }
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGNvbnN0IGF1dG8gbmV4dF9pbnQgPSBbXSgpIHsgaW50IG51bTsgY2luID4+IG51bTsgcmV0dXJuIG51bTsgfTsKICAgIGF1dG8gbiA9IG5leHRfaW50KCksIHggPSBuZXh0X2ludCgpLCBpbmYgPSB4KzE7CiAgICB2ZWN0b3I8aW50PiBtaW5fY29pbnMoaW5mLGluZik7CiAgICBmb3IgKG1pbl9jb2luc1swXSA9IDA7IG4gPiAwOyAtLW4pCiAgICAgICAgZm9yIChhdXRvIGMgPSBuZXh0X2ludCgpLCB5ID0gYzsgeSA8PSB4OyArK3kpCiAgICAgICAgICAgIG1pbl9jb2luc1t5XSA9IG1pbihtaW5fY29pbnNbeV0sbWluX2NvaW5zW3ktY10rMSk7CiAgICBjb3V0IDw8IChtaW5fY29pbnNbeF0gPT0gaW5mID8gLTE6IG1pbl9jb2luc1t4XSk7CiAgICByZXR1cm4gMDsgfQo=