#include<bits/stdc++.h>

using namespace std;

int get(vector<int>& v){
	int res=0;
	for(int i=0; i<30; i++){
		if(v[i]) res+=1<<i;
	}
	return res;
}

int solve(vector<int> v, int k){
	vector<int> cnts(30,0);
	int n = v.size();


	int l=-1, r=0;

	long long res=0;

	while(1){
		if(r>n || l>=n) break;
		if(l!=-1) for(int i=0; i<30; i++) if(v[l] & (1<<i)) cnts[i]--;
		l++;

		while(1){
			int val = get(cnts);

			if(val==k) break;

			if(r==n){r++; break;};

			for(int i=0; i<30; i++) if(v[r] & (1<<i)) cnts[i]++;
			r++;
		}

		if(r>n) break;

		res+=n-r+1; /// TODO +-1
	}
	return res;

}

int main(){
	int n, k;
	cin>>n>>k;

	vector<int> v(n);
	for(int i=0; i<n; i++) cin>>v[i];

	long long res=0;

	vector<int> curr;
	for(auto i:v){
		if((i & k) == i) curr.push_back(i);
		else{
			res += solve(curr, k);
			curr.clear();
		}
	}
	res+=solve(curr,k);
	cout<<res<<endl;
}
