#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 100;
int n = 0;
int v[maxn];
int d[maxn];
int init() {
memset(d, -1, sizeof(int)*maxn);
return 0;
}
int dp(int s){
int& ans = d[s];
if (ans != -1) {
return ans;
}
if (0 == s) {
return 0;
}
ans = 1<<30;
for (int i = 1; i <= n; i++) {
if (s >= v[i]) {
ans = min(ans, dp(s-v[i]) + 1);
}
}
return ans;
}
int main()
{
int ans = 1<<30;
printf("ans = %d\n", ans);
init();
while (1 == scanf("%d", &n)) {
for (int i = 1; i <= n; i++) {
scanf("%d", &v[i]);
}
int S = 0;
scanf("%d", &S);
int res = dp(S);
printf("res = %d\n", res);
init();
}
return 0;
}