#include <bits/stdc++.h>
using namespace std;
int const N = 300000, M = 65;
long long an;
int x[N], n, fr[2];
int bc(long long x) {
  int an = 0;
  while (x) {
    ++an;
    x ^= x & -x;
  }
  return an;
}
void go(int l) {
  int s = 0, mx = 0;
  for (int i = l; i < (int)(min(l + M, n)); ++i) {
    s += x[i];
    if (x[i] > mx) mx = x[i];
    if (s - mx >= mx && !(s & 1)) ++an;
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < (int)(n); ++i) {
    long long t;
    scanf("%lld", &t);
    x[i] = bc(t);
  }
  for (int i = 0; i < (int)(n); ++i) go(i);
  if (n > M) {
    for (int i = 1; i < (int)(n); ++i) x[i] += x[i - 1];
    for (int i = 0; i < (int)(n - M); ++i) {
      if (i)
        ++fr[x[i - 1] & 1];
      else
        ++fr[0];
      an += fr[x[i + M] & 1];
    }
  }
  printf("%lld\n", an);
}
