#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int Mod=998244353;
const ll INF = -10000000000000;
void solve() {
int n;
cin >> n;
vector<int> d(n),L(n), R(n);
for(int i = 0; i < n; i++) cin >> d[i];
for(int i = 0; i < n; i++) cin >> L[i] >> R[i];
vector<int> a(n+1), b(n+1);
a[0] = b[0] = 0;
bool ok = true;
for(int i = 1; i <= n; i++){
int low, high;
if(d[i-1] == -1){
low = a[i-1];
high = b[i-1] + 1;
} else {
low = a[i-1] + d[i-1];
high = b[i-1] + d[i-1];
}
low = max(low, L[i-1]);
high = min(high, R[i-1]);
if(low > high){
ok = false;
break;
}
a[i] = low;
b[i] = high;
}
if(!ok){
cout << "-1\n";
return;
}
vector<int> ans(n);
int h = a[n];
for(int i = n; i >= 1; i--){
if(d[i-1] != -1){
ans[i-1] = d[i-1];
h -= d[i-1];
} else {
if(h >= a[i-1] && h <= b[i-1]){
ans[i-1] = 0;
} else {
ans[i-1] = 1;
h -= 1;
}
}
}
for(int i = 0; i < n; i++) cout << ans[i] << " ";
cout << '\n';
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTW9kPTk5ODI0NDM1MzsKY29uc3QgbGwgSU5GID0gLTEwMDAwMDAwMDAwMDAwOwoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICB2ZWN0b3I8aW50PiBkKG4pLEwobiksIFIobik7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luID4+IGRbaV07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBjaW4gPj4gTFtpXSA+PiBSW2ldOwoKICAgIHZlY3RvcjxpbnQ+IGEobisxKSwgYihuKzEpOwogICAgYVswXSA9IGJbMF0gPSAwOwoKICAgIGJvb2wgb2sgPSB0cnVlOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGludCBsb3csIGhpZ2g7CiAgICAgICAgaWYoZFtpLTFdID09IC0xKXsKICAgICAgICAgICAgbG93ID0gYVtpLTFdOwogICAgICAgICAgICBoaWdoID0gYltpLTFdICsgMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsb3cgPSBhW2ktMV0gKyBkW2ktMV07CiAgICAgICAgICAgIGhpZ2ggPSBiW2ktMV0gKyBkW2ktMV07CiAgICAgICAgfQogICAgICAgIGxvdyA9IG1heChsb3csIExbaS0xXSk7CiAgICAgICAgaGlnaCA9IG1pbihoaWdoLCBSW2ktMV0pOwogICAgICAgIGlmKGxvdyA+IGhpZ2gpewogICAgICAgICAgICBvayA9IGZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgYVtpXSA9IGxvdzsKICAgICAgICBiW2ldID0gaGlnaDsKICAgIH0KICAgIGlmKCFvayl7CiAgICAgICAgY291dCA8PCAiLTFcbiI7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmVjdG9yPGludD4gYW5zKG4pOwogICAgaW50IGggPSBhW25dOwogICAgZm9yKGludCBpID0gbjsgaSA+PSAxOyBpLS0pewogICAgICAgIGlmKGRbaS0xXSAhPSAtMSl7CiAgICAgICAgICAgIGFuc1tpLTFdID0gZFtpLTFdOwogICAgICAgICAgICBoIC09IGRbaS0xXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZihoID49IGFbaS0xXSAmJiBoIDw9IGJbaS0xXSl7CiAgICAgICAgICAgICAgICBhbnNbaS0xXSA9IDA7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBhbnNbaS0xXSA9IDE7CiAgICAgICAgICAgICAgICBoIC09IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgIGNvdXQgPDwgYW5zW2ldIDw8ICIgIjsKICAgIGNvdXQgPDwgJ1xuJzsKICAgICAgICAgICAgfQogICAgICAgIAoKaW50IG1haW4oKXsgCiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoJCiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgc29sdmUoKTsKICAgIAoKICAgIHJldHVybiAwOwp9Cg==
NQo0CjAgLTEgLTEgMQowIDQKMSAyCjIgNAoxIDQKMwowIC0xIC0xCjAgMQoyIDIKMCAzCjIKLTEgLTEKMCAwCjIgMgo4Ci0xIC0xIDEgLTEgLTEgMCAwIC0xCjAgMAowIDEKMCAyCjAgMgoxIDMKMCA0CjIgNQo0IDUKMQowCjEgMQo=
5
4
0 -1 -1 1
0 4
1 2
2 4
1 4
3
0 -1 -1
0 1
2 2
0 3
2
-1 -1
0 0
2 2
8
-1 -1 1 -1 -1 0 0 -1
0 0
0 1
0 2
0 2
1 3
0 4
2 5
4 5
1
0
1 1