Tak has N cards. On the i-th (1 \leq i \leq N) card is written an integer x_i. He is selecting one or more cards from these N cards, so that the average of the integers written on the selected cards is exactly A. In how many ways can he make his selection?

Constraints

* 1 \leq N \leq 50
* 1 \leq A \leq 50
* 1 \leq x_i \leq 50
* N,\,A,\,x_i are integers.

Input

The input is given from Standard Input in the following format:


N A
x_1 x_2 ... x_N


Output

Print the number of ways to select cards such that the average of the written integers is exactly A.

Examples

Input

4 8
7 9 8 9


Output

5


Input

3 8
6 6 9


Output

0


Input

8 5
3 6 2 8 7 6 5 9


Output

19


Input

33 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3


Output

8589934591
import java.util.*;
 
public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
 
        int N = sc.nextInt();
        int A = sc.nextInt();
 
        int[] X=new int[N];
 
        int sum=0;
        for (int i = 0; i < N; i++) {
            X[i]=sc.nextInt();
            sum+=X[i];
        }
 
        long[][][] dp=new long[N+1][N+1][sum+1];
 
        dp[0][0][0]=1;
 
        for (int j = 1; j < N+1; j++) {
            for (int k = 0; k < N+1; k++) {
                    for (int s = 0; s <sum+1; s++) {
 
                    if(s<X[j - 1]) {
                        dp[j][k][s]=dp[j-1][k][s];
                    }else if(k>=1 && s>=X[j - 1]) {
                        dp[j][k][s]=dp[j-1][k][s]+dp[j-1][k-1][s-X[j - 1]];
                    }else {
                        dp[j][k][s]=0;
                    }
 
                }
            }
        }
 
        long ans=0;
        for (int k = 1; k < N+1 && k * A < sum + 1; k++) {
            ans+=dp[N][k][k*A];
        }
 
        System.out.println(ans);
    }
}