N가지 종류의 화폐가 있을때, 화폐 개수를 최소한으로 해서 M원을 만드는 방법의 개수?
IN
N M N가지 종류의 화폐 총 M원 만들기
n1
n2
... N가지 화폐의 단위
OUT
경우의 수 없으면 -1
M원을 만들기 위해서
적은 금액 ~ 큰 금액까지 차례대로 확인한다.
 : i를 만들 수 있는 최소 화폐 개수
 : 화폐의 단위 라고 했을때
점화식은
 =   만들 수 있음 or 10001
n, m = map(int, input().split())
money = []
for _ in range(n):
    x = int(input())
    money.append(x)
dp = [10001] * (m+1)
dp[0] = 0
for i in range(n):
    for j in range(money[i], m+1):
        if dp[j-money[i]] != 10001:
            dp[j] = min(dp[j], dp[j-money[i]]+1)
if dp[m] == 10001:
    print(-1)
else:
    print(dp[m])