样例会 Wa
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=2e5+5,mod=998244353;
ll t,n,k,b[N],val[N],cnt[N],ans[N],lg[N];
ll lowbit(ll x){return (x&(-x));}
ll power(ll x,ll y){
if(!y) return 1ll;
ll z=power(x,y>>1ll);
z=(z*z)%mod;
if(y&1) return (z*x)%mod;
return z;
}
ll inv(ll x){return power(x,mod-2);}
ll C(ll x,ll y){
ll res=1;
for(ll i=x-y+1;i<=x;i++) res=(res*i)%mod;
for(ll i=1;i<=y;i++) res=(res*inv(i))%mod;
return res;
}
signed main(){
for(int i=1;i<=200000;i++) lg[i]=lg[i>>1]+1;
scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&n,&k);
for(ll i=1;i<=n;i++) scanf("%lld",&b[i]);
for(ll i=1;i<=n;i++) ans[i]=b[i];
for(ll i=1;i<=n;i<<=1ll){
for(ll j=1;j<=n;j++)
if(lowbit(j)==i)
for(ll p=j+lowbit(j),x,y,z;p<=n;p+=lowbit(p)){
x=lg[lowbit(j)],y=lg[lowbit(p)];
z=abs(x-y);
ans[p]=(ans[p]-ans[j]*C(z+k-1,z))%mod;
}
}
for(ll i=1;i<=n;i++) printf("%lld ",(ans[i]%mod+mod)%mod);
puts("");
}
return 0;
}