#include <bits/stdc++.h>
using namespace std;
#define ull unsigned long long
#define P (int)(1e9+7)
#define ceil(x, y) (x%y==0? (x/y) : (x/y+1))
#define FOR(i, N) for(int i = 0; i < N; ++i)
#define FOR1(i, N) for(int i = 1; i <= N; ++i)
#define vi vector <int>
#define pii pair <int, int>
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define mset(a, v) memset(a, v, sizeof(a))
#define all(v) v.begin(), v.end()
#define INF 2e9
void BFS(vector<int> adj[], int s, int dist[], bool vis[]){
queue<int> q;
q.push(s);
dist[s] = 0;
while(!q.empty()){
int v = q.front();
q.pop();
if(vis[v]) continue;
vis[v] = true;
for(int i = 0; i < adj[v].size(); ++i){
if(dist[adj[v][i]] > dist[v] + 1 /*dist[adj[v][i]] == -1*/){
q.push(adj[v][i]);
dist[adj[v][i]] = dist[v] + 1;
}
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int T;
cin>>T;
while(T-->0)
{
vector<int> adj[101];
int dist[101]; fill(dist, dist+101, INF);
bool vis[101]; mset(vis, false);
for(int i = 1; i <= 100; i++){
for(int j = 1; j <= 6; j++){
if(i+j <= 100) adj[i].pb(i+j);
}
}
int n; cin >> n; //ladders
while(n--){
int s, e; cin >> s >> e;
adj[s] = adj[e]; //make neighbours of end vertex as neighbours of start vertex, as start and end are essentially
//the same vertices as they have been connected by a ladder
}
int m; cin >> m; //snakes
while(m--) {
int s, e; cin >> s >> e;
adj[s] = adj[e];
}
BFS(adj, 1, dist, vis);
//FOR1(i, 100) cout << i << ":" << dist[i] << " ";
cout << ((dist[100] == INF)? -1 : dist[100]);
cout<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIFAgKGludCkoMWU5KzcpCiNkZWZpbmUgY2VpbCh4LCB5KSAoeCV5PT0wPyAoeC95KSA6ICh4L3krMSkpCiNkZWZpbmUgRk9SKGksIE4pIGZvcihpbnQgaSA9IDA7IGkgPCBOOyArK2kpCiNkZWZpbmUgRk9SMShpLCBOKSBmb3IoaW50IGkgPSAxOyBpIDw9IE47ICsraSkKI2RlZmluZSB2aSB2ZWN0b3IgPGludD4KI2RlZmluZSBwaWkgcGFpciA8aW50LCBpbnQ+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBtc2V0KGEsIHYpIG1lbXNldChhLCB2LCBzaXplb2YoYSkpCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSwgdi5lbmQoKQojZGVmaW5lIElORiAyZTkKCnZvaWQgQkZTKHZlY3RvcjxpbnQ+IGFkaltdLCBpbnQgcywgaW50IGRpc3RbXSwgYm9vbCB2aXNbXSl7CgogICAgcXVldWU8aW50PiBxOwogICAgcS5wdXNoKHMpOwogICAgZGlzdFtzXSA9IDA7CiAgICB3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgICBpbnQgdiA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwoKICAgICAgICBpZih2aXNbdl0pIGNvbnRpbnVlOwogICAgICAgIHZpc1t2XSA9IHRydWU7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGFkalt2XS5zaXplKCk7ICsraSl7CiAgICAgICAgICAgIGlmKGRpc3RbYWRqW3ZdW2ldXSA+IGRpc3Rbdl0gKyAxIC8qZGlzdFthZGpbdl1baV1dID09IC0xKi8pewogICAgICAgICAgICAgICAgcS5wdXNoKGFkalt2XVtpXSk7CiAgICAgICAgICAgICAgICBkaXN0W2Fkalt2XVtpXV0gPSBkaXN0W3ZdICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CglpbnQgVDsKCWNpbj4+VDsKCXdoaWxlKFQtLT4wKQoJewogICAgICAgIHZlY3RvcjxpbnQ+IGFkalsxMDFdOwogICAgICAgIGludCBkaXN0WzEwMV07IGZpbGwoZGlzdCwgZGlzdCsxMDEsIElORik7CiAgICAgICAgYm9vbCB2aXNbMTAxXTsgbXNldCh2aXMsIGZhbHNlKTsKICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IDEwMDsgaSsrKXsKICAgICAgICAgICAgZm9yKGludCBqID0gMTsgaiA8PSA2OyBqKyspewogICAgICAgICAgICAgICAgaWYoaStqIDw9IDEwMCkgYWRqW2ldLnBiKGkraik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaW50IG47IGNpbiA+PiBuOyAvL2xhZGRlcnMKICAgICAgICB3aGlsZShuLS0pewogICAgICAgICAgICBpbnQgcywgZTsgY2luID4+IHMgPj4gZTsKICAgICAgICAgICAgYWRqW3NdID0gYWRqW2VdOyAvL21ha2UgbmVpZ2hib3VycyBvZiBlbmQgdmVydGV4IGFzIG5laWdoYm91cnMgb2Ygc3RhcnQgdmVydGV4LCBhcyBzdGFydCBhbmQgZW5kIGFyZSBlc3NlbnRpYWxseQogICAgICAgICAgICAvL3RoZSBzYW1lIHZlcnRpY2VzIGFzIHRoZXkgaGF2ZSBiZWVuIGNvbm5lY3RlZCBieSBhIGxhZGRlcgogICAgICAgIH0KICAgICAgICBpbnQgbTsgY2luID4+IG07IC8vc25ha2VzCiAgICAgICAgd2hpbGUobS0tKSB7CiAgICAgICAgICAgIGludCBzLCBlOyBjaW4gPj4gcyA+PiBlOwogICAgICAgICAgICBhZGpbc10gPSBhZGpbZV07CiAgICAgICAgfQogICAgICAgIEJGUyhhZGosIDEsIGRpc3QsIHZpcyk7CiAgICAgICAgLy9GT1IxKGksIDEwMCkgY291dCAgPDwgaSA8PCAiOiIgPDwgZGlzdFtpXSA8PCAiICI7CiAgICAgICAgY291dCA8PCAoKGRpc3RbMTAwXSA9PSBJTkYpPyAtMSA6IGRpc3RbMTAwXSk7CgkgICAgY291dDw8J1xuJzsKCX0KCXJldHVybiAwOwp9Cg==