#include<bits/stdc++.h>
using namespace std;
int a[105],vis[105],s=0,n,m,k,xx,yy,zz;
bool dfs(int x){
for(int i=1;i<=n;i++){
if(vis[i]==0&&vis[i-1]!=1&&vis[i+1]!=1&&s!=0){
vis[i]=1;
s--;
}
}
if(s==0){
return true;
}else return false;
}
int main(){
cin>>k;
while(k--){
memset(vis,0,sizeof(vis));
cin>>n>>m;
s=m;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]==1) vis[i]=1;
}
if(dfs(1)==true){
cout<<"true";
}else{
cout<<"false";
}
}
for(int i=1;i<=n;i++){
cout<<vis[i]<<" ";
}
}