#include <bits/stdc++.h>
using namespace std;
int N, K, koin[505];
int memo[50005];
int topdown(int total) {
if(total == 0)
return 0;
if(memo[total] != -1)
return memo[total];
int best = 1e9; // 1.234e9 = 1.234*10^9
for(int i = 0; i < N; i++)
if(total >= koin[i])
best = min(best, topdown(total-koin[i])+1);
return memo[total] = best;
}
int main() {
cin >> N;
for(int i = 0; i < N; i++)
cin >> koin[i];
cin >> K;
memset(memo, -1, sizeof(memo));
// top-down
// cout << topdown(K) << endl;
// bottom-up
memo[0] = 0;
for(int i = 1; i <= K; i++) {
int best = 1e9;
for(int j = 0; j < N; j++)
if(i >= koin[j])
best = min(best, memo[i-koin[j]]+1);
memo[i] = best;
}
cout << memo[K] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgTiwgSywga29pbls1MDVdOwppbnQgbWVtb1s1MDAwNV07CgppbnQgdG9wZG93bihpbnQgdG90YWwpIHsKCWlmKHRvdGFsID09IDApCgkJcmV0dXJuIDA7CglpZihtZW1vW3RvdGFsXSAhPSAtMSkKCQlyZXR1cm4gbWVtb1t0b3RhbF07CglpbnQgYmVzdCA9IDFlOTsgLy8gMS4yMzRlOSA9IDEuMjM0KjEwXjkKCWZvcihpbnQgaSA9IDA7IGkgPCBOOyBpKyspCgkJaWYodG90YWwgPj0ga29pbltpXSkKCQkJYmVzdCA9IG1pbihiZXN0LCB0b3Bkb3duKHRvdGFsLWtvaW5baV0pKzEpOwoJcmV0dXJuIG1lbW9bdG90YWxdID0gYmVzdDsKfQoKaW50IG1haW4oKSB7CgljaW4gPj4gTjsKCWZvcihpbnQgaSA9IDA7IGkgPCBOOyBpKyspCgkJY2luID4+IGtvaW5baV07CgljaW4gPj4gSzsKCW1lbXNldChtZW1vLCAtMSwgc2l6ZW9mKG1lbW8pKTsKCQoJLy8gdG9wLWRvd24KCS8vIGNvdXQgPDwgdG9wZG93bihLKSA8PCBlbmRsOwoJCgkvLyBib3R0b20tdXAKCW1lbW9bMF0gPSAwOwoJZm9yKGludCBpID0gMTsgaSA8PSBLOyBpKyspIHsKCQlpbnQgYmVzdCA9IDFlOTsKCQlmb3IoaW50IGogPSAwOyBqIDwgTjsgaisrKQoJCQlpZihpID49IGtvaW5bal0pCgkJCQliZXN0ID0gbWluKGJlc3QsIG1lbW9baS1rb2luW2pdXSsxKTsKCQltZW1vW2ldID0gYmVzdDsKCX0KCWNvdXQgPDwgbWVtb1tLXSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=