https://www.acmicpc.net/problem/2293
n개의 동전으로 k가격을 만들 수 있는 경우의 수를 구하는 DP 문제이다.
n, k = map(int,input().split())
coins = [int(input()) for _ in range(n)]
dp = [0] * (k + 1)
dp[0] = 1
for coin in coins:
for price in range(coin, k + 1):
dp[price] += dp[price-coin]
print(dp[k])