#include<bits/stdc++.h>
using namespace std;
int ds(string s){
    int ans=0;
    reverse(s.begin(), s.end());
    for(int i=0;i<s.size();i++){
        if(s[i]=='1') ans+=pow(2, i);
    }
    return ans;
}
string dv(int m){
    string ans;
    while(m!=0){
        ans.push_back(m%2+'0');
        m/=2;
    }
    reverse(ans.begin(), ans.end());
    return ans;
}
int ili(int n, int m){
    string ans;
    string a=dv(n);
    string b=dv(m);
    if(a.size()<b.size()) swap(a, b);
    reverse(b.begin(), b.end());
    while(a.size()>b.size()) b.push_back('0');
    reverse(b.begin(), b.end());

    for(int i=0;i<a.size();i++){
        if(a[i]=='1' || b[i]=='1') ans.push_back('1');
        else ans.push_back('0');
    }
    return ds(ans);
}
int ans[100003];///ans[i]=min index, който достига К
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n, k;
    cin>>n>>k;
    vector<int> v;
    for(int i=0;i<n;i++){
        int buff;
        cin>>buff;
        v.push_back(buff);
    }
    int br=0;
    for(int j=0;j<n;j++){
        int tek=v[j];
        for(int i=j;i<n;i++){
            tek=ili(tek, v[i]);
            if(tek>=k){
                br++;
            }
        }
    }

    cout<<br;
    return 0;
}
