#P1622E. Math Test

    ID: 1478 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 8 Uploaded By: Tags>bitmasksbrute forcegreedy*2200

Math Test

Description

Petya is a math teacher. nn of his students has written a test consisting of mm questions. For each student, it is known which questions he has answered correctly and which he has not.

If the student answers the jj-th question correctly, he gets pjp_j points (otherwise, he gets 00 points). Moreover, the points for the questions are distributed in such a way that the array pp is a permutation of numbers from 11 to mm.

For the ii-th student, Petya knows that he expects to get xix_i points for the test. Petya wonders how unexpected the results could be. Petya believes that the surprise value of the results for students is equal to i=1nxiri\sum\limits_{i=1}^{n} |x_i - r_i|, where rir_i is the number of points that the ii-th student has got for the test.

Your task is to help Petya find such a permutation pp for which the surprise value of the results is maximum possible. If there are multiple answers, print any of them.

The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains two integers nn and mm (1n101 \le n \le 10; 1m1041 \le m \le 10^4) — the number of students and the number of questions, respectively.

The second line contains nn integers x1,x2,,xnx_1, x_2, \dots, x_n (0xim(m+1)20 \le x_i \le \frac{m(m+1)}{2}), where xix_i is the number of points that the ii-th student expects to get.

This is followed by nn lines, the ii-th line contains the string sis_i (si=m;si,j{0,1}|s_i| = m; s_{i, j} \in \{0, 1\}), where si,js_{i, j} is 11 if the ii-th student has answered the jj-th question correctly, and 00 otherwise.

The sum of mm for all test cases does not exceed 10410^4.

For each test case, print mm integers — a permutation pp for which the surprise value of the results is maximum possible. If there are multiple answers, print any of them.

Input

The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains two integers nn and mm (1n101 \le n \le 10; 1m1041 \le m \le 10^4) — the number of students and the number of questions, respectively.

The second line contains nn integers x1,x2,,xnx_1, x_2, \dots, x_n (0xim(m+1)20 \le x_i \le \frac{m(m+1)}{2}), where xix_i is the number of points that the ii-th student expects to get.

This is followed by nn lines, the ii-th line contains the string sis_i (si=m;si,j{0,1}|s_i| = m; s_{i, j} \in \{0, 1\}), where si,js_{i, j} is 11 if the ii-th student has answered the jj-th question correctly, and 00 otherwise.

The sum of mm for all test cases does not exceed 10410^4.

Output

For each test case, print mm integers — a permutation pp for which the surprise value of the results is maximum possible. If there are multiple answers, print any of them.

Sample Input 1

3
4 3
5 1 2 2
110
100
101
100
4 4
6 2 0 10
1001
0010
0110
0101
3 6
20 3 15
010110
000101
111111

Sample Output 1

3 1 2 
2 3 4 1 
3 1 4 5 2 6