#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int MOD = 158400;
const int MOD2 = 998244353;
const int INF = LLONG_MAX/2;
int primes[1000000];
void seive(){
fill(primes, primes + 1000000, 1);
primes[0] = primes[1] = 0;
for(int i = 2 ; i*i < 1000000 ; i++){
if(primes[i]){
for(int j = i*i ; j < 1000000 ; j += i){
primes[j] = 0;
}
}
}
for(int i = 1 ; i < 1000000 ; i++){
primes[i] += primes[i-1];
}
}
int factorial(int n){
if(n==0){
return 1;
}
return (n*(factorial(n-1)))%MOD;
}
bool isPrime(int n){
if(n <= 1) return false;
for(int i = 2 ; i*i <= n ; i++){
if(n % i == 0) return false;
}
return true;
}
int power(int a, int b){
if(b == 0) return 1;
a %= MOD;
int value = power(a, b / 2);
if(b % 2 == 0){
return (value * value) % MOD;
} else {
return ((value * value) % MOD * (a % MOD)) % MOD;
}
}
int gcd(int a, int b){
if(a == 0) return b;
return gcd(b % a, a);
}
void solve() {
int n, m;
cin >> n >> m;
// Only one row is used, so we don't need a 2D array.
vector<int> A(m);
for(int i = 0; i < m; ++i) {
cin >> A[i];
}
// Prefix sums for both players
vector<int> count1(m, 0), sum1(m, 0);
vector<int> count2(m, 0), sum2(m, 0);
int c1 = 0, s1 = 0;
int c2 = 0, s2 = 0;
for(int i = 0; i < m; ++i) {
if(A[i] == 1 || A[i] == 3) {
c1++;
s1 += i;
}
if(A[i] == 2 || A[i] == 3) {
c2++;
s2 += i;
}
count1[i] = c1;
sum1[i] = s1;
count2[i] = c2;
sum2[i] = s2;
}
for(int i = 0; i < m; ++i) {
int leftCount1 = (i > 0) ? count1[i-1] : 0;
int leftSum1 = (i > 0) ? sum1[i-1] : 0;
int rightCount1 = count1[m-1] - leftCount1;
int rightSum1 = sum1[m-1] - leftSum1;
int total1 = (i * leftCount1) - leftSum1 + rightSum1 - (i * rightCount1);
int leftCount2 = (i > 0) ? count2[i-1] : 0;
int leftSum2 = (i > 0) ? sum2[i-1] : 0;
int rightCount2 = count2[m-1] - leftCount2;
int rightSum2 = sum2[m-1] - leftSum2;
int total2 = (i * leftCount2) - leftSum2 + rightSum2 - (i * rightCount2);
cout << abs(total1 - total2) << " ";
}
cout << endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(NULL);
int t;
cin >> t;
while(t--){
solve();
}
return 0;
}