#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include "../debug.cpp"
#else
#define debug(...)
#define debugArr(...)
#endif
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define ff first
#define ss second
#define pb push_back
#define BIG 998244353
#define MOD 1000000007
#define fast_io ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
typedef long long ll;
typedef pair<ll, ll> pii;
typedef vector<ll> vi;
typedef vector<pii> vpii;
typedef vector<vi> vvi;
void solve() {
int n,m;
cin >> n >> m;
vi ast(n);
vpii str(m);
for (int i = 0; i < n; i++)
cin >> ast[i];
for (int i = 0; i < m; i++) {
cin >> str[i].ff;
str[i].ss = i;
}
sort(all(ast));
sort(all(str));
ll initStr = ast[0]+1, curStr = ast[0]+1;
// x -> 2x - 2y1 -> 4x - 4y1 - 2y2 -> 8x - 8y1 - 4y2 - 2y3
// x + 1 -> 2x - 2y1 + 2 -> 4x - 4y1 - 2y2 + 4
int j = 0;
vi ans(m);
for (int i = 0; i < n && j < m; i++) {
if (curStr <= ast[i]) {
ll diff = ast[i]+1-curStr;
int pow = min(i,32);
ll cnt = (diff+((1ll<<pow)-1))/(1ll<<pow);
initStr += cnt;
curStr += cnt*(1ll<<pow);
}
debug(initStr,curStr);
while (j < m && str[j].ff < initStr) {
ans[str[j].ss] = i;
j++;
}
curStr = 2ll*(curStr-ast[i]);
}
while (j < m) {
ans[str[j].ss] = n;
j++;
}
for (auto &x: ans) cout << x << " ";
cout << "\n";
}
int main() {
auto start = chrono::high_resolution_clock::now();
fast_io;
int t;
cin >> t;
while (t--) {
solve();
}
#ifdef LOCAL
auto end = chrono::high_resolution_clock::now();
chrono::duration<double> duration = end - start;
cerr << "Execution time: " << duration.count() << " seconds" << endl;
#endif
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojaWZkZWYgTE9DQUwKI2luY2x1ZGUgICIuLi9kZWJ1Zy5jcHAiCiNlbHNlCiNkZWZpbmUgZGVidWcoLi4uKQojZGVmaW5lIGRlYnVnQXJyKC4uLikKI2VuZGlmCgojZGVmaW5lIGFsbCh4KSBiZWdpbih4KSwgZW5kKHgpCiNkZWZpbmUgc3ooeCkgKGludCkoeCkuc2l6ZSgpCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBCSUcgOTk4MjQ0MzUzCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBmYXN0X2lvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCkKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IHBpaTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZpOwp0eXBlZGVmIHZlY3RvcjxwaWk+IHZwaWk7CnR5cGVkZWYgdmVjdG9yPHZpPiB2dmk7Cgp2b2lkIHNvbHZlKCkgewogICAgaW50IG4sbTsKICAgIGNpbiA+PiBuID4+IG07CgogICAgdmkgYXN0KG4pOwogICAgdnBpaSBzdHIobSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBjaW4gPj4gYXN0W2ldOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKICAgICAgICBjaW4gPj4gc3RyW2ldLmZmOwogICAgICAgIHN0cltpXS5zcyA9IGk7CiAgICB9CgogICAgc29ydChhbGwoYXN0KSk7CiAgICBzb3J0KGFsbChzdHIpKTsKICAgIGxsIGluaXRTdHIgPSBhc3RbMF0rMSwgY3VyU3RyID0gYXN0WzBdKzE7CiAgICAvLyB4IC0+IDJ4IC0gMnkxIC0+IDR4IC0gNHkxIC0gMnkyIC0+IDh4IC0gOHkxIC0gNHkyIC0gMnkzCiAgICAvLyB4ICsgMSAtPiAyeCAtIDJ5MSArIDIgLT4gNHggLSA0eTEgLSAyeTIgKyA0CiAgICAKICAgIGludCBqID0gMDsKICAgIHZpIGFucyhtKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAmJiBqIDwgbTsgaSsrKSB7CiAgICAgICAgaWYgKGN1clN0ciA8PSBhc3RbaV0pIHsKICAgICAgICAgICAgbGwgZGlmZiA9IGFzdFtpXSsxLWN1clN0cjsKICAgICAgICAgICAgaW50IHBvdyA9IG1pbihpLDMyKTsKICAgICAgICAgICAgbGwgY250ID0gKGRpZmYrKCgxbGw8PHBvdyktMSkpLygxbGw8PHBvdyk7CiAgICAgICAgICAgIGluaXRTdHIgKz0gY250OwogICAgICAgICAgICBjdXJTdHIgKz0gY250KigxbGw8PHBvdyk7CiAgICAgICAgfSAKCiAgICAgICAgZGVidWcoaW5pdFN0cixjdXJTdHIpOwogICAgICAgIHdoaWxlIChqIDwgbSAmJiBzdHJbal0uZmYgPCBpbml0U3RyKSB7CiAgICAgICAgICAgIGFuc1tzdHJbal0uc3NdID0gaTsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KCiAgICAgICAgY3VyU3RyID0gMmxsKihjdXJTdHItYXN0W2ldKTsKICAgIH0KCiAgICB3aGlsZSAoaiA8IG0pIHsKICAgICAgICBhbnNbc3RyW2pdLnNzXSA9IG47CiAgICAgICAgaisrOwogICAgfQoKICAgIGZvciAoYXV0byAmeDogYW5zKSBjb3V0IDw8IHggPDwgIiAiOwogICAgY291dCA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIGF1dG8gc3RhcnQgPSBjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7CiAgICBmYXN0X2lvOwogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKCiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICAjaWZkZWYgTE9DQUwKICAgICAgICBhdXRvIGVuZCA9IGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKICAgICAgICBjaHJvbm86OmR1cmF0aW9uPGRvdWJsZT4gZHVyYXRpb24gPSBlbmQgLSBzdGFydDsKICAgICAgICBjZXJyIDw8ICJFeGVjdXRpb24gdGltZTogIiA8PCBkdXJhdGlvbi5jb3VudCgpIDw8ICIgc2Vjb25kcyIgPDwgZW5kbDsKICAgICNlbmRpZgp9Cg==