#include <iostream>
#include <fstream>
#include <cstdio>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <queue>
#include <deque>
#include <ctime>
#include <cstdlib>

using namespace std;

#define sz(x) ((int)((x).size()))

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;

const double EPS = 1e-9;
const double PI = acos(-1.0);

const ll inf = (ll)(1e18);
pair<ll, ll> dp[1100];
ll x[1100];

void solve() {
	int n;
	scanf("%d", &n);
	for(int i = 0; i < n; i++) {
		scanf("%lld", &x[i]);
	}
	scanf("%lld", &x[n]);
	x[n]++;
	sort(x, x + n);
	n++;
	while (x[n - 1] < x[n - 2]) {
		x[n - 2] = x[n - 1];
		--n;
	}
	dp[0] = make_pair(0, 0);
	for(int i = 1; i < n; i++) {
		dp[i] = make_pair(inf, inf);
		for(int f = 0; f < i; f++) {
			ll c = x[i] - 1 - dp[f].second;
			ll c1 = c / x[f]; if(c % x[f] != 0) {c1++;}
			if(c < 0) c1 = 0;
			dp[i] = min(dp[i], make_pair(dp[f].first + c1, dp[f].second + c1 * x[f]));
		}
	}
	cout << dp[n - 1].first;
}

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	solve();

	return 0;
}
