#include <bits/stdc++.h>
using namespace std;
struct node{
long long h, a, t;
}c[200005];
bool cmp(node x, node y){
return x.t < y.t;
}
long long T, n;
double k;
bool flag;
int main(){
cin >> T;
while(T--){
k = 0;
flag = true;
cin >> n;
for (int i=1; i<=n; i++) cin >> c[i].h;
for (int i=1; i<=n; i++) cin >> c[i].a;
for (int i=1; i<=n; i++) cin >> c[i].t;
if (n == 1){
cout << 0 << "\n";
continue ;
}
sort (c+1, c+n+1, cmp);
for (int i=1; i<n; i++){
if (c[i].h <= c[i+1].h && c[i].a <= c[i+1].a){
cout << -1 << "\n";
flag = false;
break ;
}
if (c[i].a!=c[i+1].a) k = max(k, 1.0*(c[i+1].h-c[i].h)/(c[i].a-c[i+1].a));
}
if (flag == true){
if (k<0) cout << "0\n";
else cout << int(k+1) << "\n";
}
}
return 0;
}