import sys
n, k = map(int, input().split())
bitsC = log2(k)+1
input = sys.stdin.read
arr = list(map(int, input().split()))
reversedK = ~k 
edges = [0] * (n + 1) 
top = 0
for i in range(n):
    if ((reversedK & arr[i]) != 0):
        edges[top] = i
        top += 1
edges[top] = n
top += 1

def bits(arr, num, adder):
    added = 0
    for i in range(bitsC):
        if ((num >> i) & 1):
            if (arr[i] == 0 and adder == 1):
                added += 1 << i 
            arr[i] += adder
            if (arr[i] == 0 and adder == -1):
                added -= 1 << i
    return added

rez = 0
lastEdge = -1
for edgeI in range(top):
    edge = edges[edgeI]
    if (edge - lastEdge == 1): 
        lastEdge = edge
        continue
    
    i = lastEdge+1
    j = lastEdge+2
    bitsCount = [0] * bitsC
    bits(bitsCount, arr[i], 1)
    num = arr[i]

    while (i < edge):
        while (j <= i or (j < n and num != k)):
            num += bits(bitsCount, arr[j], 1)
            j+=1
        if (num == k):
            rez += edge - j + 1
        else: break

        num += bits(bitsCount, arr[i], -1)
        i += 1

    lastEdge = edge

print(rez)