#include<bits/stdc++.h>
#define ll long long
using namespace std;
int T,n;
ll k,ans,a[201000],b[201000],c[201000],c2[201000];
ll t(ll x){
if(x<=k)return x;
return k+(x-k)*2;
}
void sol(){
ans=0;
scanf("%d%lld",&n,&k);ll all=0;
for(int i=1;i<=n;i++)scanf("%lld",&a[i]),all+=a[i];
for(int i=1;i<=n;i++)scanf("%lld",&b[i]);
bool fl=0;
for(int i=1;i<=n;i++)
if(b[i]==1){
fl=1;
int u=i;ll z=a[i];
while(b[u%n+1]==2)u=u%n+1,z+=a[u];
ans+=t(z);
u=i;ll z2=a[i];
while(b[u%n+1]==2)u=u%n+1,c[u]=z2,c2[u]=z-z2,z2+=a[u];
}
for(int i=1;i<=n;i++){
if(!fl){printf("%lld ",all*2);continue;}
if(b[i]==1)printf("%lld ",ans);
else printf("%lld ",ans-t(c[i]+c2[i])+t(c[i])+c2[i]*2);
}
puts("");
}
int main(){
scanf("%d",&T);
while(T--)sol();
return 0;
}