#include <bits/stdc++.h>
using namespace std;
const long long N = 2e5 + 3;
const long long mod = 1e9 + 7;
long long k;
long long complement(long long a) {
  long long b = a;
  long long ans = 0, cnt = 0;
  int i = 0;
  while (i < k) {
    int d = b % 2;
    d = 1 - d;
    ans = (1 << cnt) * d + ans;
    cnt++;
    b /= 2;
    i++;
  }
  return ans;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long i = 0;
  vector<long long> v;
  long long n, a;
  cin >> n >> k;
  long long xorsum = 0;
  map<long long, long long> m;
  m[0] = 1;
  for (i = 0; i < n; i++) {
    cin >> a;
    v.push_back(a);
  }
  long long cnt = 0;
  for (i = 0; i < n; i++) {
    int x = 0;
    long long comp = complement(v[i]);
    long long xorsum2 = xorsum ^ comp;
    xorsum = xorsum ^ v[i];
    if (m[xorsum] <= m[xorsum2]) {
      cnt += m[xorsum];
      m[xorsum]++;
    } else {
      xorsum = xorsum2;
      cnt += m[xorsum2];
      m[xorsum2]++;
    }
  }
  long long ans = n * (n + 1) / 2 - cnt;
  cout << ans;
  return 0;
}
