#include using namespace std; typedef long long int ll; typedef pair P; typedef vector VI; typedef vector VVI; const ll MOD = 1000000007; const ll INF = 1e18; #define REP(i,n) for(int i=0;i> n >> q; VI a(n); REP(i,n) cin >> a[i]; string s; cin >> s; VVI p(33,VI(2,0)); int now0, now1; int b0, b1; for(int i=0;i<=32;i++){ now0=0; now1=1; REP(j,n){ b0=now0; b1=now1; if(s[j]=='0'){ now0&=(a[j]>>i&1); now1&=(a[j]>>i&1); } else{ now0|=(a[j]>>i&1); now1|=(a[j]>>i&1); } p[i][0]+=(now0^b0)*(1ll<> t; ans=0; REP(i,33) ans+=p[i][t>>i&1]; cout << ans << endl; } return 0; }