#include <bits/stdc++.h>
using namespace std;
long long sqr(long long x) { return x * x; }
long double sqrd(long double x) { return x * x; }
mt19937 Random((int)time(0));
long long rnd(long long x) { return Random() % x; }
const long long INF = (long long)1e9 + 282;
const long long MOD = (long long)1e9 + 7;
const long double PI = acosl(-1.0);
const int L = 22;
const int N = (1ll << (L)) + 10;
int arr[N];
long long cnt[N][2], sum[L][2];
void calc(int v, int l, int r, vector<int>& arr, int d) {
  if (l == r) {
    return;
  }
  int m = (l + r) / 2;
  vector<int> a, b;
  for (int i = 0; i < (int)(arr).size() / 2; i++) {
    a.push_back(arr[i]);
  }
  for (int i = (int)(arr).size() / 2; i < (int)(arr).size(); i++) {
    b.push_back(arr[i]);
  }
  calc(v * 2, l, m, a, d + 1);
  calc(v * 2 + 1, m + 1, r, b, d + 1);
  arr.clear();
  int x = 0, y = 0;
  while (x < (int)(a).size() && y < (int)(b).size()) {
    if (a[x] == b[y]) {
      arr.push_back(a[x++]);
      arr.push_back(b[y++]);
      continue;
    }
    if (a[x] < b[y]) {
      arr.push_back(a[x++]);
    } else {
      arr.push_back(b[y++]);
    }
  }
  while (x < (int)(a).size()) {
    arr.push_back(a[x++]);
  }
  while (y < (int)(b).size()) {
    arr.push_back(b[y++]);
  }
  int p = 0;
  for (int i = 0; i < (int)(a).size(); i++) {
    while (p < (int)(b).size() && b[p] <= a[i]) {
      p++;
    }
    cnt[v][1] += (int)(b).size() - p;
  }
  p = 0;
  for (int i = 0; i < (int)(b).size(); i++) {
    while (p < (int)(a).size() && a[p] <= b[i]) {
      p++;
    }
    cnt[v][0] += (int)(a).size() - p;
  }
  sum[d][0] += cnt[v][0];
  sum[d][1] += cnt[v][1];
}
void mane() {
  int n;
  cin >> n;
  int l = n;
  n = (1ll << (n));
  vector<int> res;
  res.reserve(n);
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    res.push_back(arr[i]);
  }
  calc(1, 0, n - 1, res, 0);
  int m;
  cin >> m;
  for (int i = 0; i < m; i++) {
    int h;
    cin >> h;
    h = l - h;
    for (int j = h; j <= l; j++) {
      swap(sum[j][0], sum[j][1]);
    }
    long long ans = 0;
    for (int j = 0; j <= l; j++) {
      ans += sum[j][0];
    }
    cout << ans << "\n";
  }
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout.setf(ios_base::fixed, ios_base::floatfield);
  cout.precision(12);
  mane();
}
