#include<bits/stdc++.h>
using namespace std;
int coins[100];
int n,amount;
int dp[100][1000];
int coin(int i,int amount)
{
if(i==n)
{
if(amount==0)
return 0;
else
return 1000;
}
if(dp[i][amount]!=-1)
return dp[i][amount];
if(amount>=coins[i])
{
int niye=1+coin(i+1,amount-coins[i]);
int naniye=coin(i+1,amount);
return dp[i][amount]= min(niye,naniye);
}
else
{
return coin(i+1,amount);
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>coins[i];
}
cin>>amount;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=amount;j++)
{
dp[i][j]=-1;
}
}
int min=coin(0,amount);
cout<<min<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGNvaW5zWzEwMF07CmludCBuLGFtb3VudDsKaW50IGRwWzEwMF1bMTAwMF07CmludCBjb2luKGludCBpLGludCBhbW91bnQpCnsKaWYoaT09bikKewppZihhbW91bnQ9PTApCnJldHVybiAwOwplbHNlCnJldHVybiAxMDAwOwp9CmlmKGRwW2ldW2Ftb3VudF0hPS0xKQpyZXR1cm4gZHBbaV1bYW1vdW50XTsKaWYoYW1vdW50Pj1jb2luc1tpXSkKewppbnQgbml5ZT0xK2NvaW4oaSsxLGFtb3VudC1jb2luc1tpXSk7CmludCBuYW5peWU9Y29pbihpKzEsYW1vdW50KTsKcmV0dXJuIGRwW2ldW2Ftb3VudF09IG1pbihuaXllLG5hbml5ZSk7Cn0KZWxzZQp7CnJldHVybiBjb2luKGkrMSxhbW91bnQpOwp9Cn0KaW50IG1haW4oKQp7CgpjaW4+Pm47CmZvcihpbnQgaT0wO2k8bjtpKyspCnsKY2luPj5jb2luc1tpXTsKfQpjaW4+PmFtb3VudDsKZm9yKGludCBpPTA7aTw9bjtpKyspCnsKZm9yKGludCBqPTA7ajw9YW1vdW50O2orKykKewpkcFtpXVtqXT0tMTsKfQp9CmludCBtaW49Y29pbigwLGFtb3VudCk7CmNvdXQ8PG1pbjw8ZW5kbDsKfQ==