package Luogu_oj;
import java.util.Scanner;
public class p1164 {
static int n,m;,sum;
static int []a;
static int [][]f;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
n=in.nextInt();m=in.nextInt();
a=new int[n+1];
f=new int [n+1][1001];
for(int i=1;i<=n;i++) {
a[i]=in.nextInt();
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
if(j==a[i])f[i][j]=(f[i-1][j]+1);
if(j>a[i]) {
f[i][j]=(f[i-1][j]+f[i-1][j-a[i]]);
}else if(j<a[i]){
f[i][j]+=f[i-1][j];
}
}
/*for(int j=m;j>=a[i];j--) {//逆着来用二维数组想不明白怎么遍历
if(j==a[i])f[i][j]=f[i-1][j]+1;
if(j>a[i])f[i][j]=f[i-1][j]+f[i-1][j-a[i]];
}
}*/
System.out.println(f[n][m]);
}
}