func_code_string: #include <bits/stdc++.h>   using namespace std;   void albus() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);   }   bool asec(long long a, long long b) { return a < b; }   bool desc(long long a, long long b) { return a > b; }   bool Asec_and_desc(pair<long long, pair<long long, long long>> a,                      pair<long long, pair<long long, long long>> b) {     if (a.first == b.first) {       if (a.second.first == b.second.first) {         return a.second.second < b.second.second;       }       return a.second.first < b.second.first;     }     return a.first > b.first;   }   bool compare(pair<long long, long long> a, pair<long long, long long> b) {     return a.second < b.second;   }   typedef struct data {     data *bit[2];     long long cnt = 0;   } trie;   trie *head;   void insert(long long x) {     trie *node = head;     for (long long i = 30; i >= 0; i--) {       long long cur = (x >> i) & 1;       if (node->bit[cur] == NULL) {         node->bit[cur] = new trie();       }       node = node->bit[cur];       node->cnt++;     }   }   long long countXor(long long x, long long q) {     trie *node = head;     long long ans = 0, sum = 0;     for (long long i = 30; i >= 0; i--) {       long long cur = (x >> i) & 1;       long long cur2 = (q >> i) & 1;       if (cur2 == 0) {         if (node->bit[!cur] != NULL) ans += node->bit[!cur]->cnt;         if (node->bit[cur] != NULL) {           node = node->bit[cur];         } else           return ans;       } else if (cur2 == 1) {         if (node->bit[!cur] != NULL)           node = node->bit[!cur];         else           return ans;       }     }     ans += node->cnt;     return ans;   }   int32_t main() {     albus();     head = new trie();     insert(0);     long long n, q;     cin >> n >> q;     vector<long long> A;     for (long long i = 1; i <= n; i++) {       long long a;       cin >> a;       A.push_back(a);     }     long long xo = 0, final = 0;     for (long long i = 0; i < A.size(); i++) {       xo ^= A[i];       final += countXor(xo, q);       insert(xo);     }     cout << final << endl;   }   