package LuoGu;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class p7948 {
public static void main(String[] args) throws IOException {
StreamTokenizer ins = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter up = new PrintWriter(new OutputStreamWriter(System.out));
ins.nextToken();
int T =(int)ins.nval , k = 0;
int[][] result = new int[T][10001];
while(k < T){
ins.nextToken();
int tn,n = (int)ins.nval;
ins.nextToken();
int q = (int)ins.nval;
int[] list = new int[n];
tn = 0;
while(tn < n) {
ins.nextToken();
list[tn] = (int)ins.nval;
tn ++;
}
Arrays.sort(list);
tn = 0;
Map<Integer,Integer> hash = new HashMap<Integer,Integer>();
int[] list_q = new int[q];
int[] listq = new int[q];
for(int i = 0;i < q;i++) {
ins.nextToken();
list_q[i] = (int)ins.nval;
listq[i] = list_q[i];
}
Arrays.sort(list_q);
result[k][0] = q;
double sum1 = list[n - 1];
int count = 1;
while(tn < q) {
for(int i = n - count - 1;i >= 0;i --) {
if(list[i] != 0 && (sum1 + list[i]) / (count + 1) - list_q[tn] > list[i])break;
sum1 += list[i];
count ++;
}
hash.put(list_q[tn],count);
tn++;
}
tn = 1;
while(tn <= q) {
result[k][tn] = hash.get(listq[tn - 1]);
tn ++;
}
k++;
}
for(int i = 0;i < T;i++) {
for(int j = 1;j <= result[i][0];j++) {
up.print(result[i][j] + " ");
}
up.println();
}
up.flush();
up.close();
}
}