output_description: Print the number of ways to select cards such that the average of the written
  integers is exactly A.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N A
      x_1 x_2 ... x_N
attempt: n, a = map(int, input().split())
  l = []
  for i in map(int, input().split()):
      l.append(i - a)
  l.sort()
  pl = sorted([i for i in l if i > 0])
  ml = sorted([-i for i in l if i < 0])
  M = min(sum(pl), sum(ml))
  dpp = [0] * (M + 1)
  dpm = [0] * (M + 1)
  s = 1
  for i in pl:
      for j in range(s):
          if i + j <= M:
              dpp[i + j] += dpp[j] + 1
          else:
              break
      s += i
  s = 1
  for i in ml:
      for j in range(s):
          if i + j <= M:
              dpm[i + j] += dpm[j] + 1
          else:
              break
      s += i
  ans = 0
  for i in range(1, M + 1):
      ans += dpp[i] * dpm[i]
  z_cnt = l.count(0)
  print(ans * pow(2, z_cnt) + int(pow(2, z_cnt)) - 1)
  
problem_description: Statement
  
  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?
samples: [{"input": "4 8\n    7 9 8 9", "output": "5\n    \n\n  * The following are the 5 ways to select cards such that the average is 8:\n    * Select the 3-rd card.\n    * Select the 1-st and 2-nd cards.\n    * Select the 1-st and 4-th cards.\n    * Select the 1-st, 2-nd and 3-rd cards.\n    * Select the 1-st, 3-rd and 4-th cards.\n\n* * *"}, {"input": "3 8\n    6 6 9", "output": "0\n    \n\n* * *"}, {"input": "8 5\n    3 6 2 8 7 6 5 9", "output": "19\n    \n\n* * *"}, {"input": "33 3\n    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\n    \n\n  * The answer may not fit into a 32-bit integer."}]