https://www.acmicpc.net/problem/2293
import java.io.*;
import java.util.*;
public class Main
{
static int n,k;
static int[] v;
static int[] dp;
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());
v = new int[n];
for(int i=0;i<n;i++){
v[i] = Integer.parseInt(br.readLine());
}
dp = new int[k +1];
dp[0]=1; // 초기화 = 0원 만드는 방법 1가지
// dp[j] = j값이 되는데 가능한 개수
for(int i=0;i<n;i++){
for(int j=v[i];j<=k;j++){
dp[j] += dp[j-v[i]];
}
}
System.out.println(dp[k]);
}
}