#include <iostream>
#include <vector>
#include <queue>
#include <tuple>
using namespace std;
// Maksymalna liczba żetonów, którą będziemy śledzić w BFS.
// Wartość 20 jest wystarczająca dla reguł o wartościach 0-9.
const int MAX_T = 21;
struct Rule {
int a, b, c, ap, bp, cp;
};
struct State {
int z, s, m;
};
void solve() {
int z0, s0, m0, zt, st, mt;
if (!(cin >> z0 >> s0 >> m0)) return;
cin >> zt >> st >> mt;
int r;
cin >> r;
vector<Rule> rules(r);
for (int i = 0; i < r; ++i) {
cin >> rules[i].a >> rules[i].b >> rules[i].c
>> rules[i].ap >> rules[i].bp >> rules[i].cp;
}
// Tablica odległości: dist[złote][srebrne][miedziane]
// Inicjalizujemy -1 (nieodwiedzone)
int dist[MAX_T + 1][MAX_T + 1][MAX_T + 1];
for (int i = 0; i <= MAX_T; ++i)
for (int j = 0; j <= MAX_T; ++j)
for (int k = 0; k <= MAX_T; ++k)
dist[i][j][k] = -1;
queue<State> q;
// Startowy stan (z przycięciem do MAX_T)
int sz = min(z0, MAX_T), ss = min(s0, MAX_T), sm = min(m0, MAX_T);
dist[sz][ss][sm] = 0;
q.push({sz, ss, sm});
while (!q.empty()) {
State curr = q.front();
q.pop();
// Sprawdzamy, czy aktualny stan spełnia warunek otwarcia Sezamu
if (curr.z >= zt && curr.s >= st && curr.m >= mt) {
cout << dist[curr.z][curr.s][curr.m] << endl;
return;
}
for (const auto& rule : rules) {
// Czy Alibabę stać na tę wymianę?
if (curr.z >= rule.a && curr.s >= rule.b && curr.m >= rule.c) {
// Obliczamy nowy stan
int nz = min(MAX_T, curr.z - rule.a + rule.ap);
int ns = min(MAX_T, curr.s - rule.b + rule.bp);
int nm = min(MAX_T, curr.z - rule.c + rule.cp);
// UWAGA: powyżej wkradł się błąd logiczny w nm, powinno być:
nm = min(MAX_T, curr.m - rule.c + rule.cp);
if (dist[nz][ns][nm] == -1) {
dist[nz][ns][nm] = dist[curr.z][curr.s][curr.m] + 1;
q.push({nz, ns, nm});
}
}
}
}
cout << "NIE" << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int d;
cin >> d;
while (d--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDx0dXBsZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBNYWtzeW1hbG5hIGxpY3piYSDFvGV0b27Ds3csIGt0w7NyxIUgYsSZZHppZW15IMWbbGVkemnEhyB3IEJGUy4KLy8gV2FydG/Fm8SHIDIwIGplc3Qgd3lzdGFyY3phasSFY2EgZGxhIHJlZ3XFgiBvIHdhcnRvxZtjaWFjaCAwLTkuCmNvbnN0IGludCBNQVhfVCA9IDIxOwoKc3RydWN0IFJ1bGUgewogICAgaW50IGEsIGIsIGMsIGFwLCBicCwgY3A7Cn07CgpzdHJ1Y3QgU3RhdGUgewogICAgaW50IHosIHMsIG07Cn07Cgp2b2lkIHNvbHZlKCkgewogICAgaW50IHowLCBzMCwgbTAsIHp0LCBzdCwgbXQ7CiAgICBpZiAoIShjaW4gPj4gejAgPj4gczAgPj4gbTApKSByZXR1cm47CiAgICBjaW4gPj4genQgPj4gc3QgPj4gbXQ7CgogICAgaW50IHI7CiAgICBjaW4gPj4gcjsKICAgIHZlY3RvcjxSdWxlPiBydWxlcyhyKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcjsgKytpKSB7CiAgICAgICAgY2luID4+IHJ1bGVzW2ldLmEgPj4gcnVsZXNbaV0uYiA+PiBydWxlc1tpXS5jIAogICAgICAgICAgICA+PiBydWxlc1tpXS5hcCA+PiBydWxlc1tpXS5icCA+PiBydWxlc1tpXS5jcDsKICAgIH0KCiAgICAvLyBUYWJsaWNhIG9kbGVnxYJvxZtjaTogZGlzdFt6xYJvdGVdW3NyZWJybmVdW21pZWR6aWFuZV0KICAgIC8vIEluaWNqYWxpenVqZW15IC0xIChuaWVvZHdpZWR6b25lKQogICAgaW50IGRpc3RbTUFYX1QgKyAxXVtNQVhfVCArIDFdW01BWF9UICsgMV07CiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBNQVhfVDsgKytpKQogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IE1BWF9UOyArK2opCiAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDw9IE1BWF9UOyArK2spCiAgICAgICAgICAgICAgICBkaXN0W2ldW2pdW2tdID0gLTE7CgogICAgcXVldWU8U3RhdGU+IHE7CgogICAgLy8gU3RhcnRvd3kgc3RhbiAoeiBwcnp5Y2nEmWNpZW0gZG8gTUFYX1QpCiAgICBpbnQgc3ogPSBtaW4oejAsIE1BWF9UKSwgc3MgPSBtaW4oczAsIE1BWF9UKSwgc20gPSBtaW4obTAsIE1BWF9UKTsKICAgIGRpc3Rbc3pdW3NzXVtzbV0gPSAwOwogICAgcS5wdXNoKHtzeiwgc3MsIHNtfSk7CgogICAgd2hpbGUgKCFxLmVtcHR5KCkpIHsKICAgICAgICBTdGF0ZSBjdXJyID0gcS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CgogICAgICAgIC8vIFNwcmF3ZHphbXksIGN6eSBha3R1YWxueSBzdGFuIHNwZcWCbmlhIHdhcnVuZWsgb3R3YXJjaWEgU2V6YW11CiAgICAgICAgaWYgKGN1cnIueiA+PSB6dCAmJiBjdXJyLnMgPj0gc3QgJiYgY3Vyci5tID49IG10KSB7CiAgICAgICAgICAgIGNvdXQgPDwgZGlzdFtjdXJyLnpdW2N1cnIuc11bY3Vyci5tXSA8PCBlbmRsOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHJ1bGUgOiBydWxlcykgewogICAgICAgICAgICAvLyBDenkgQWxpYmFixJkgc3RhxIcgbmEgdMSZIHd5bWlhbsSZPwogICAgICAgICAgICBpZiAoY3Vyci56ID49IHJ1bGUuYSAmJiBjdXJyLnMgPj0gcnVsZS5iICYmIGN1cnIubSA+PSBydWxlLmMpIHsKICAgICAgICAgICAgICAgIC8vIE9ibGljemFteSBub3d5IHN0YW4KICAgICAgICAgICAgICAgIGludCBueiA9IG1pbihNQVhfVCwgY3Vyci56IC0gcnVsZS5hICsgcnVsZS5hcCk7CiAgICAgICAgICAgICAgICBpbnQgbnMgPSBtaW4oTUFYX1QsIGN1cnIucyAtIHJ1bGUuYiArIHJ1bGUuYnApOwogICAgICAgICAgICAgICAgaW50IG5tID0gbWluKE1BWF9ULCBjdXJyLnogLSBydWxlLmMgKyBydWxlLmNwKTsgCiAgICAgICAgICAgICAgICAvLyBVV0FHQTogcG93ecW8ZWogd2tyYWTFgiBzacSZIGLFgsSFZCBsb2dpY3pueSB3IG5tLCBwb3dpbm5vIGJ5xIc6CiAgICAgICAgICAgICAgICBubSA9IG1pbihNQVhfVCwgY3Vyci5tIC0gcnVsZS5jICsgcnVsZS5jcCk7CgogICAgICAgICAgICAgICAgaWYgKGRpc3RbbnpdW25zXVtubV0gPT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICBkaXN0W256XVtuc11bbm1dID0gZGlzdFtjdXJyLnpdW2N1cnIuc11bY3Vyci5tXSArIDE7CiAgICAgICAgICAgICAgICAgICAgcS5wdXNoKHtueiwgbnMsIG5tfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCAiTklFIiA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKCiAgICBpbnQgZDsKICAgIGNpbiA+PiBkOwogICAgd2hpbGUgKGQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==