#include <iostream>#include <algorithm>#include <cstdio>usingnamespacestd;
int cmp(int a, int b ){
return a < b;
}
int main() {
int f[1000];
int cost[1000];
int n, m;
while (cin >> n && n ){
memset(cost, 0, sizeof(cost));
memset(f, 0, sizeof(f)); // 初始化for(int i = 0; i < n; i++){
cin >> cost[i];
}
cin >> m;
if(m < 5) { //对于总钱数不足5的 直接输出结果cout << m << endl;
continue;
}
m -= 5;
sort(cost, cost+n, cmp); //从小到大排序 最后一个一定是最大的int maxc= cost[n-1];
for(int i = 0; i < n-1; i++){
for(int j = m; j >= cost[i]; j--){
f[j] = max(f[j], f[j-cost[i]] + cost[i]);
}
}
cout << m + 5 - f[m] - maxc << endl;
}
return0;
}