#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int N = 2e5, oo = 2e18, MOD = 1e9+7;
void solve() {
int n; cin >> n;
vector<int> a(n), b(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
cin >> b[i];
}
vector<int> last(32, -1);
vector<pair<int, int>> ans;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 32; j++) {
if (((b[i] >> j) & 1) && !((a[i] >> j) & 1)) {
if (last[j] == -1) {
cout << -1 << endl;
return;
}
ans.push_back({last[j], i});
}
if ((a[i] >> j) & 1) last[j] = i;
}
}
sort(ans.begin(), ans.end());
if (ans.empty()) {
cout << 0 << endl;
return;
}
int res = 0;
int l = ans[0].first, r = ans[0].second;
for (int i = 1; i < ans.size(); i++) {
auto [cl, cr] = ans[i];
if (cl > r) {
res += (r - l);
l = cl, r = cr;
} else {
r = cr;
}
}
res += (r - l);
cout << res << endl;
// cout << (max(0ll, r - l)) << endl;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
// #ifndef ONLINE_JUDGE
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// #endif
int t; t = 1;
cin >> t;
while (t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGVuZGwgICAgICdcbicKI2RlZmluZSBpbnQgICAgICBsb25nIGxvbmcKCmNvbnN0IGludCBOID0gMmU1LCBvbyA9IDJlMTgsIE1PRCA9IDFlOSs3OwoKCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbjsgY2luID4+IG47CiAgICB2ZWN0b3I8aW50PiBhKG4pLCBiKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGJbaV07CiAgICB9CgogICAgdmVjdG9yPGludD4gbGFzdCgzMiwgLTEpOwogICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBhbnM7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMzI7IGorKykgewogICAgICAgICAgICBpZiAoKChiW2ldID4+IGopICYgMSkgJiYgISgoYVtpXSA+PiBqKSAmIDEpKSB7CiAgICAgICAgICAgICAgICBpZiAobGFzdFtqXSA9PSAtMSkgewogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgLTEgIDw8IGVuZGw7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYW5zLnB1c2hfYmFjayh7bGFzdFtqXSwgaX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoYVtpXSA+PiBqKSAmIDEpIGxhc3Rbal0gPSBpOwogICAgICAgIH0KICAgIH0KICAgIHNvcnQoYW5zLmJlZ2luKCksIGFucy5lbmQoKSk7CiAgICBpZiAoYW5zLmVtcHR5KCkpIHsKICAgICAgICBjb3V0IDw8IDAgPDwgZW5kbDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgcmVzID0gMDsKICAgIGludCBsID0gYW5zWzBdLmZpcnN0LCByID0gYW5zWzBdLnNlY29uZDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYW5zLnNpemUoKTsgaSsrKSB7CiAgICAgICAgYXV0byBbY2wsIGNyXSA9IGFuc1tpXTsKCiAgICAgICAgaWYgKGNsID4gcikgewogICAgICAgICAgICByZXMgKz0gKHIgLSBsKTsKICAgICAgICAgICAgbCA9IGNsLCByID0gY3I7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgciA9IGNyOwogICAgICAgIH0KICAgIH0KICAgIHJlcyArPSAociAtIGwpOwogICAgY291dCA8PCByZXMgPDwgZW5kbDsKICAgIC8vIGNvdXQgPDwgKG1heCgwbGwsIHIgLSBsKSkgPDwgZW5kbDsKfQoKCnNpZ25lZCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAogICAgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CiAgICAvLyAjaWZuZGVmIE9OTElORV9KVURHRSAKICAgIC8vICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOyAKICAgIC8vICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7IAogICAgLy8gI2VuZGlmIAogICAgaW50IHQ7IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K