#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX = 1E5 + 10;
int length, N, Q, T, first, last , mid, idx;
int arr[MAX];
int Find(int length) {
if (length <= arr[0]) return 0;
if (length > arr[N - 1]) return N;
return lower_bound(arr, arr + N, length) - arr;
}
int main() {
scanf("%d", &T);
while (T--) {
scanf("%d %d", &N, &Q);
for (int i = 0; i < N; ++i) scanf("%d", arr + i);
sort(arr, arr + N);
arr[N] = 0;
while (Q--) {
scanf("%d", &length);
idx = Find(length);
first = 0; last = idx + 1;
while (first + 1 < last) {
mid = (first + last) >> 1;
if ((arr[idx - mid] + ((idx - mid) / mid)) >= length) first = mid;
else last = mid;
}
printf("%d\n", N - idx + first);
}
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNvbnN0IGludCBNQVggPSAxRTUgKyAxMDsKIAppbnQgbGVuZ3RoLCBOLCBRLCBULCBmaXJzdCwgbGFzdCAsIG1pZCwgaWR4OwppbnQgYXJyW01BWF07CiAKaW50IEZpbmQoaW50IGxlbmd0aCkgewogICAgaWYgKGxlbmd0aCA8PSBhcnJbMF0pIHJldHVybiAwOwogICAgaWYgKGxlbmd0aCA+IGFycltOIC0gMV0pIHJldHVybiBOOwogICAgcmV0dXJuIGxvd2VyX2JvdW5kKGFyciwgYXJyICsgTiwgbGVuZ3RoKSAtIGFycjsKfQogCmludCBtYWluKCkgewogICAgc2NhbmYoIiVkIiwgJlQpOwogICAgd2hpbGUgKFQtLSkgewogICAgICAgIHNjYW5mKCIlZCAlZCIsICZOLCAmUSk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpIHNjYW5mKCIlZCIsIGFyciArIGkpOwogICAgICAgIHNvcnQoYXJyLCBhcnIgKyBOKTsKICAgICAgICBhcnJbTl0gPSAwOwogICAgICAgIHdoaWxlIChRLS0pIHsKICAgICAgICAgICAgc2NhbmYoIiVkIiwgJmxlbmd0aCk7CiAgICAgICAgICAgIGlkeCA9IEZpbmQobGVuZ3RoKTsKICAgICAgICAgICAgZmlyc3QgPSAwOyBsYXN0ID0gaWR4ICsgMTsKICAgICAgICAgICAgd2hpbGUgKGZpcnN0ICsgMSA8IGxhc3QpIHsKICAgICAgICAgICAgICAgIG1pZCA9IChmaXJzdCArIGxhc3QpID4+IDE7CiAgICAgICAgICAgICAgICBpZiAoKGFycltpZHggLSBtaWRdICsgKChpZHggLSBtaWQpIC8gbWlkKSkgPj0gbGVuZ3RoKSBmaXJzdCA9IG1pZDsKICAgICAgICAgICAgICAgIGVsc2UgbGFzdCA9IG1pZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmludGYoIiVkXG4iLCBOIC0gaWR4ICsgZmlyc3QpOwogICAgICAgIH0KICAgIH0KfQ==