#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
while(t--){
int n,m;
cin>>n>>m;
vector<int> A(1, 0);
for(int i=1;i<=m;i++){
int element;
cin>>element;
A.push_back(element);
}
vector<long long> aarsi;
vector<long long> krypton;
for(int target=1;target<=m;target++)
{
long long aarsi_total = 0;
long long krypton_total = 0;
for(int i=1;i<=m;i++)
{
int moves = abs(target - i);
if(A[i]==1){
aarsi_total += moves;
}
else if(A[i]==2){
krypton_total += moves;
}
else if(A[i]==3){
aarsi_total += moves;
krypton_total += moves;
}
}
aarsi.push_back(aarsi_total);
krypton.push_back(krypton_total);
}
for(int i=0; i<m; i++){
long long finalAnswer = abs(aarsi[i] - krypton[i]);
cout << finalAnswer << " ";
}
cout<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCB0OwoJY2luPj50OwoJd2hpbGUodC0tKXsKCSAgICBpbnQgbixtOwoJICAgIGNpbj4+bj4+bTsKCSAgICB2ZWN0b3I8aW50PiBBKDEsIDApOwoJICAgIGZvcihpbnQgaT0xO2k8PW07aSsrKXsKCSAgICAgICAgaW50IGVsZW1lbnQ7CgkgICAgICAgIGNpbj4+ZWxlbWVudDsKCSAgICAgICAgQS5wdXNoX2JhY2soZWxlbWVudCk7CgkgICAgfQoJICAgIAoJICAgIHZlY3Rvcjxsb25nIGxvbmc+IGFhcnNpOwoJICAgIHZlY3Rvcjxsb25nIGxvbmc+IGtyeXB0b247CgkgICAgCgkgICAgZm9yKGludCB0YXJnZXQ9MTt0YXJnZXQ8PW07dGFyZ2V0KyspCgkgICAgewoJICAgICAgICBsb25nIGxvbmcgYWFyc2lfdG90YWwgPSAwOyAgIAoJICAgICAgICBsb25nIGxvbmcga3J5cHRvbl90b3RhbCA9IDA7CgkgICAgICAgIAoJICAgICAgICBmb3IoaW50IGk9MTtpPD1tO2krKykKCSAgICAgICAgewoJICAgICAgICAgICAgaW50IG1vdmVzID0gYWJzKHRhcmdldCAtIGkpOwoJICAgICAgICAgICAgaWYoQVtpXT09MSl7CgkgICAgICAgICAgICAgICAgYWFyc2lfdG90YWwgKz0gbW92ZXM7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBlbHNlIGlmKEFbaV09PTIpewoJICAgICAgICAgICAgICAgIGtyeXB0b25fdG90YWwgKz0gbW92ZXM7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBlbHNlIGlmKEFbaV09PTMpewoJICAgICAgICAgICAgICAgIGFhcnNpX3RvdGFsICs9IG1vdmVzOwoJICAgICAgICAgICAgICAgIGtyeXB0b25fdG90YWwgKz0gbW92ZXM7CgkgICAgICAgICAgICB9CgkgICAgICAgIH0KCSAgICAgICAgYWFyc2kucHVzaF9iYWNrKGFhcnNpX3RvdGFsKTsKCSAgICAgICAga3J5cHRvbi5wdXNoX2JhY2soa3J5cHRvbl90b3RhbCk7CgkgICAgfQoJICAgIAoJICAgIGZvcihpbnQgaT0wOyBpPG07IGkrKyl7CgkgICAgICAgIGxvbmcgbG9uZyBmaW5hbEFuc3dlciA9IGFicyhhYXJzaVtpXSAtIGtyeXB0b25baV0pOwoJICAgICAgICBjb3V0IDw8IGZpbmFsQW5zd2VyIDw8ICIgIjsKCSAgICB9CgkgICAgY291dDw8IlxuIjsKCX0KICAgIHJldHVybiAwOwp9