int n,q,a[1d5],t[1d5]; string s; ll y,z[30][2]; { rd(n,q,a(n),s,t(q)); rep(i,30){ rep(j,2){ int v=j; rep(k,n){ if( s[k]=='0' && !(a[k]&1<<i) && v ){ v=0; z[i][j]+=1<<i; } if( s[k]=='1' && (a[k]&1<<i) && !v ){ v=1; z[i][j]+=1<<i; } } } } rep(k,q){ y=0; rep(i,30){ y+=z[i][t[k]>>i&1]; } wt(y); } }