#include <bits/stdc++.h>
using namespace std;
const int inf = 1000000000;
const int md = 1000000007;
const double esp = 0.000000000001;
int bit[5555555];
int a[11111111];
int n, q;
vector<int> seg[2222222];
long long larger[2222222], smaller[2222222];
long long largerh[22], smallerh[22], sumnode[22];
int query[2222222];
int stt[22];
int read() {
  scanf("%d", &n);
  for (int i = 1; i <= (1 << n); i++) scanf("%d", a + i);
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) {
    scanf("%d", query + i);
    query[i] = n - query[i];
  }
  return 0;
}
int buildSEG(int i, int l, int r, int h) {
  if (l == r) {
    seg[i].push_back(a[l]);
    return 0;
  }
  int mid = (l + r) / 2;
  buildSEG(2 * i, l, mid, h + 1);
  buildSEG(2 * i + 1, mid + 1, r, h + 1);
  int y = 0;
  for (int x = 0; x < seg[2 * i].size(); x++) {
    while (y < seg[2 * i + 1].size() && seg[2 * i + 1][y] < seg[2 * i][x]) {
      seg[i].push_back(seg[2 * i + 1][y]);
      y++;
    }
    larger[i] += y;
    seg[i].push_back(seg[2 * i][x]);
  }
  for (int j = y; j < seg[2 * i + 1].size(); j++)
    seg[i].push_back(seg[2 * i + 1][j]);
  y = seg[2 * i + 1].size() - 1;
  for (int x = seg[2 * i].size() - 1; x >= 0; x--) {
    while (y >= 0 && seg[2 * i + 1][y] > seg[2 * i][x]) y--;
    smaller[i] += seg[2 * i + 1].size() - y - 1;
  }
  largerh[h + 1] += larger[i];
  smallerh[h + 1] += smaller[i];
  return 0;
}
int init() {
  buildSEG(1, 1, (1 << n), 0);
  for (int i = n - 1; i >= 0; i--) sumnode[i] = sumnode[i + 1] + largerh[i + 1];
  return 0;
}
int process() {
  for (int i = 1; i <= q; i++) {
    if (query[i] == n) {
      printf("%I64d\n", sumnode[0]);
      continue;
    }
    for (int j = query[i] + 1; j <= n; j++) {
      stt[j]++;
      stt[j] %= 2;
    }
    for (int j = n; j >= 0; j--) {
      long long between;
      if (stt[j + 1] == 0)
        between = largerh[j + 1];
      else
        between = smallerh[j + 1];
      sumnode[j] = sumnode[j + 1] + between;
    }
    printf("%I64d\n", sumnode[0]);
  }
  return 0;
}
int main() {
  read();
  init();
  process();
  return 0;
}
