open Printf
let input_int_array n =
	Array.init n (fun _ -> Scanf.scanf " %d" (fun v -> v))

let get_int () = Scanf.scanf " %d" (fun v -> v)
let get_2_ints () = Scanf.scanf " %d %d" (fun u v -> u,v)
let get_3_ints () = Scanf.scanf " %d %d %d" (fun u v w -> u,v,w)
let get_4_ints () = Scanf.scanf " %d %d %d %d" (fun u v w x -> u,v,w,x)
let get_5_ints () = Scanf.scanf " %d %d %d %d %d" (fun u v w x y -> u,v,w,x,y)

let print_int_endline n = n |> string_of_int |> print_endline

module Int64 = struct
	include Int64
	let (+|) p q = Int64.add p q
	let (-|) p q = Int64.sub p q
	let ( *|) p q = Int64.mul p q
	let (/|) p q = Int64.div p q
	let (<|) p q = 
		if Int64.compare p q < 0 then true 
		else false
	let (>|) p q = 
		if Int64.compare p q > 0 then true
		else false
	let (>=|) p q = not (p < q)
	let (<=|) p q = not (p > q)
	let labs p = if p <| 0L then -1L*|p else p
	let (~|) p = Int64.of_int p
end
open Int64

let () =
  let n,a = get_2_ints ()
  in let xl = input_int_array n |> Array.to_list
  in
  let rec f0 ls s c =
    let k = if c>0 && s = c*a then 1L else 0L in
    (* printf "%2d %2d -- %2Ld\n" s c k; *)
    match ls with
    | [] -> k
    | h::t -> (
      if c>0 && s=c*a then
        f0 t h 1 +| f0 t 0 0 +| 1L
      else
        f0 t (h+s) (c+1) +| f0 t s c
    )
  in f0 xl 0 0 |> printf "%Ld\n"