#include<bits/stdc++.h>
using namespace std;
int a[100001];
string s[100001];
string bin(int n){
    string binary;
    while(n!=0){
        binary.push_back(n%2+'0');
        n/=2;
    }
    reverse(binary.begin(),binary.end());
    return binary;
}
string pobitovo(string a,string b){
    string ans;
    for(int i=0;i<a.size();i++){
        ans.push_back(max(a[i],b[i]));
    }
    return ans;
}
void add0(string& ss,int len){
    reverse(ss.begin(),ss.end());
    int l=ss.size();
    for(int i=0;i<len-l;i++){
        ss.push_back('0');
    }
    reverse(ss.begin(),ss.end());
}
int main(){
    int n,k;
    cin>>n>>k;
    string sk=bin(k);
    int maxlen=sk.size();
    for(int i=0;i<n;i++){
        cin>>a[i];
        s[i]=bin(a[i]);
        maxlen=max(maxlen,int(s[i].size()));
    }
    add0(sk,maxlen);
    for(int i=0;i<n;i++){
        add0(s[i],maxlen);
        //cout<<s[i]<<"\n";
    }
    //cout<<"\n";
    int ans=0;
    for(int i=0;i<n;i++){
        string bit=s[i];
        for(int j=i;j<n;j++){
            bit=pobitovo(bit,s[j]);
            if(bit>=sk){
                ans+=n-j;
                break;
            }
        }
    }
    cout<<ans;
}
