import Data.Array ((!))
import qualified Data.Array.Unboxed as A

main :: IO ()
main = do
    [n, a] <- map read . words  <$> getLine :: IO [Int]
    ns <- map read . words  <$> getLine :: IO [Int]
    print $ dp a n ns

dp :: Int -> Int -> [Int] -> Int
dp a n ns' = sum [memo!(n, j, k)|j<-[1..n], k<-[0..50*n], mod k j == 0, div k j == a] 
    where
    ns = A.array (1, n) [(i,x)|(i,x) <- zip [1..] ns']
    memo = A.array ((0,0,0), (n,n, 50*n)) 
           [((i,j,k), f i j k)|i<-[0..n], j<-[0..n], k<-[0..50*n]]
    -- f (nsのインデックス) (使う枚数) (値) = 何組あるか
    f 0 0 0 = 1
    f 0 _ _ = 0
    f i j k 
        | j>0 && k-(ns!i) >= 0 = (memo!(i-1,j,k)) + (memo!(i-1,j-1,k - ns!i))
        | otherwise            = memo!(i-1,j,k)