#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bitset<32> a[100010]; long long score[32][2] = {}; int main() { long long n, q; string s; cin >> n >> q; for (int i = 0; i < n; i++) { long long a1; cin >> a1; a[i] = a1; } cin >> s; for (int i = 0; i < 32; i++) { for (int j = 0; j < 2; j++) { bool bo = j; for (int k = 0; k < n; k++) { if (s[k] == '0') { if (bo && !a[k][i]) { score[i][j] += (1 << i); bo = false; } } else { if (!bo && a[k][i]) { score[i][j] += (1 << i); bo = true; } } } } } for (int i = 0; i < q; i++) { bitset<32> t; long long t1; cin >> t1; t = t1; long long ans = 0; for (int j = 0; j < 32; j++) { ans += score[j][t[j]]; } cout << ans << endl; } }