Link to this code: https://cses.fi/paste/97edc234b5f768ebd840cd/
/* 777 */
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int INF = 1e9 + 7;
const int SIZE = 1e6 + 5;
int dp[SIZE];

void solve() {
    int N, X;
    cin >> N >> X;
    vector<int> vec(N);
    for (int &x : vec) cin >> x;
    for (int x = 1; x <= X; ++x) dp[x] = INF;
    dp[0] = 0;
    for (int x = 0; x < X; ++x) {
        for (int num : vec) {
            if (x + num > X) continue;
            dp[x + num] = min(dp[x + num], dp[x] + 1);
        }
    }
    if (dp[X] == INF) dp[X] = -1;
    cout << dp[X];
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int T = 1;
    // cin >> T;
    while (T--) solve();
}