#include <iostream>
#include <climits>
using namespace std;
int main() {
long long n,x;
cin>>n>>x;
long long a[n];
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
long long DP[x+1];
for(long long j=0;j<=x;j++)
{
DP[j]=INT_MAX;
}
DP[0]=0;
for(long long i=1;i<=n;i++)
{
for(long long j=0;j<=x;j++)
{
if(j >= a[i-1])
{
DP[j] = min(DP[j-a[i-1]]+1,DP[j]);
}
}
}
if(DP[x] == INT_MAX)
{
cout<<-1<<endl;
}
else
{
cout<<DP[x]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2xpbWl0cz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJCglsb25nIGxvbmcgbix4OwoJY2luPj5uPj54OwoJCglsb25nIGxvbmcgYVtuXTsKCWZvcihsb25nIGxvbmcgaT0wO2k8bjtpKyspCgl7CgkJY2luPj5hW2ldOwoJfQoJCglsb25nIGxvbmcgRFBbeCsxXTsKCQoJCglmb3IobG9uZyBsb25nIGo9MDtqPD14O2orKykKCXsKCQlEUFtqXT1JTlRfTUFYOwoJfQoJCglEUFswXT0wOwoJCQoJZm9yKGxvbmcgbG9uZyBpPTE7aTw9bjtpKyspCgl7CgkJZm9yKGxvbmcgbG9uZyBqPTA7ajw9eDtqKyspCgkJewoJCQlpZihqID49IGFbaS0xXSkKCQkJewoJCQkJRFBbal0gPSBtaW4oRFBbai1hW2ktMV1dKzEsRFBbal0pOwoJCQl9CgkJfQoJfQoJCgkKCWlmKERQW3hdID09IElOVF9NQVgpCgl7CgkJY291dDw8LTE8PGVuZGw7Cgl9CgllbHNlCgl7CgkJY291dDw8RFBbeF08PGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==