#include using namespace std; const long long INF = 1000000000000000000; int main(){ int N; long long L; cin >> N >> L; vector W(N); for (int i = 0; i < N; i++){ cin >> W[i]; } sort(W.begin(), W.end()); vector dp(W[0], INF); priority_queue, vector>, greater>> pq; pq.push(make_pair(0, 0)); while (!pq.empty()){ long long x = pq.top().first; int v = pq.top().second; pq.pop(); if (dp[v] == INF){ dp[v] = x; for (int j = 1; j < N; j++){ int w = (v + W[j]) % W[0]; if (dp[w] == INF){ pq.push(make_pair(x + W[j], w)); } } } } long long ans = 0; for (int i = 0; i < W[0]; i++){ if (dp[i] <= L){ ans += (L - dp[i]) / W[0] + 1; } } cout << ans - 1 << endl; }