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.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String line = br.readLine();
		String[] split = line.split(" ");
		int N = Integer.parseInt(split[0]);
		int A = Integer.parseInt(split[1]);
		
		line = br.readLine();
		split = line.split(" ");
		
		int[] arr = new int[N];		
		for(int i = 0; i<N; i++) arr[i] = Integer.parseInt(split[i]);
		
		boolean[][] dp =  new boolean[N+1][50*N+1];
		long[][] times = new long[N+1][50*N+1];
		for(int i = 0; i<=N; i++){
			Arrays.fill(times[i], 0);
			Arrays.fill(dp[i], false);
		}

		dp[0][0] = true;
		times[0][0] = 1;
		
		long total = 0;
		
		for(int i = 0; i < N; i++){			
			for(int j = i; j>=0; j--){
				for(int k = 50*N - arr[i]; k>=0; k--){
					if(dp[j][k]){
						int index = k + arr[i];
						dp[j+1][index] = true;
						times[j+1][index] += times[j][k];
						if((A*(j+1)) == index){
							total += times[j][k];
						}
					}
				}
			}	
		}		
		System.out.println(total);
	}
}
