Problem E: 硬币兑换二

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:112 Solved:32

Description

给一个整数数组coins表示不同面额的硬币,另外给一个整数表示总金额。请你计算并返回可以凑成总金额的最少硬币个数。如果任何硬币组合都无法凑出总金额,输出-1

假设每一种面额的硬币有无限个。如果总金额为0,则输出0



Input

输入分三行。
第一行为一个正整数n,表示一共有多少种不同面值的硬币。
第二行为n个正整数,表示每枚硬币的面值。
第三行是一个非负整数k,表示需要兑换的金额。


Output

输出用n种不同硬币组成金额k需要使用的最少硬币数。如果任何组合都无法凑成总金额,则输出-1。
如果总金额为0,则输出0。

Sample Input Copy

3
1 2 5
11

Sample Output Copy

3

HINT

硬币数量n,1<=n<=200
硬币面值s, 1<=s<=2000
兑换金额k, 1<=k<=1000000