#include <bits/stdc++.h>
int n, k, p, ans;
int a[200009];
long long b[200009];
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i <= n; ++i) {
    scanf("%d", a + i);
    b[i] = a[i];
  }
  p = n;
  for (int i = 0; i < n; ++i) {
    if (b[i] & 1) {
      p = i;
      break;
    }
    b[i + 1] += b[i] >> 1;
    b[i] = 0;
  }
  for (int i = n; i > p; --i) {
    if (std::abs(b[i]) > 2 * k) goto FAIL;
    b[i - 1] += b[i] << 1;
    b[i] = 0;
  }
  for (int i = p; i >= 0; --i) {
    if (std::abs(b[i]) > 2 * k) break;
    if ((i != n || a[i] != b[i]) && std::abs(a[i] - b[i]) <= k) ++ans;
    if (i) {
      b[i - 1] = b[i] << 1;
      b[i] = 0;
    }
  }
  printf("%d\n", ans);
  goto EXIT;
FAIL:
  puts("0");
EXIT:
  return 0;
}
