#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
inline int power(int a, int b) {
int x = 1;
while (b) {
if (b & 1) x *= a;
a *= a;
b >>= 1;
}
return x;
}
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
int n, m, stLen, elLen, v, k;
vector<int> stairs;
vector<int> elevators;
void consistency(vector<vector<int>>& q){
sort(begin(elevators), end(elevators));
sort(begin(stairs), end(stairs));
int stairDist = n-1;
int eleDist = (n+1+(v-1))/v;
for(auto& it : q){
int sx = it[0];
int sy = it[1];
int dx = it[2];
int dy = it[3];
int ans = LINF;
// 1. Check direct walk if on the same floor (Standard edge case)
if(sx == dx) {
ans = abs(sy - dy);
}
// 2. Check Elevators (closest two neighbors to sy)
auto e_it = upper_bound(begin(elevators), end(elevators), sy);
// Option A: Elevator >= sy (Ceil)
if(e_it != end(elevators)){
int d = *e_it;
int cost = abs(d-sy) + abs(d-dy) + (abs(dx-sx)+v-1)/v;
ans = min(ans, cost);
}
// Option B: Elevator < sy (Floor)
if(e_it != begin(elevators)){
int d = *prev(e_it);
int cost = abs(d-sy) + abs(d-dy) + (abs(dx-sx)+v-1)/v;
ans = min(ans, cost);
}
// 3. Check Stairs (closest two neighbors to sy)
auto s_it = upper_bound(begin(stairs), end(stairs), sy);
// Option A: Stair >= sy (Ceil)
if(s_it != end(stairs)){
int d = *s_it;
int cost = abs(d-sy) + abs(d-dy) + abs(dx-sx);
ans = min(ans, cost);
}
// Option B: Stair < sy (Floor)
if(s_it != begin(stairs)){
int d = *prev(s_it);
int cost = abs(d-sy) + abs(d-dy) + abs(dx-sx);
ans = min(ans, cost);
}
cout << ans << endl;
}
}
void solve() {
cin>>n >> m >> stLen >> elLen >> v;
stairs.resize(stLen);
elevators.resize(elLen);
for(int i=0; i<stLen; i++) cin >> stairs[i];
for(int i=0; i<elLen; i++) cin >> elevators[i];
cin >> k;
vector<vector<int>> q(k);
for(int i=0; i<k; i++){
int x, y, a, b;
cin >> x >> y >> a >> b;
q[i] = {x,y,a,b};
}
consistency(q);
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYikgewogICAgaW50IHggPSAxOwogICAgd2hpbGUgKGIpIHsKICAgICAgICBpZiAoYiAmIDEpIHggKj0gYTsKICAgICAgICBhICo9IGE7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKY29uc3QgaW50IE0gPSAxMDAwMDAwMDA3Owpjb25zdCBpbnQgTiA9IDNlNSs5Owpjb25zdCBpbnQgSU5GID0gMmU5KzE7CmNvbnN0IGludCBMSU5GID0gMjAwMDAwMDAwMDAwMDAwMDAwMTsKCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKaW50IG4sIG0sIHN0TGVuLCBlbExlbiwgdiwgazsKdmVjdG9yPGludD4gc3RhaXJzOwp2ZWN0b3I8aW50PiBlbGV2YXRvcnM7Cgp2b2lkIGNvbnNpc3RlbmN5KHZlY3Rvcjx2ZWN0b3I8aW50Pj4mIHEpewogICAgc29ydChiZWdpbihlbGV2YXRvcnMpLCBlbmQoZWxldmF0b3JzKSk7CiAgICBzb3J0KGJlZ2luKHN0YWlycyksIGVuZChzdGFpcnMpKTsKCiAgICBpbnQgc3RhaXJEaXN0ID0gbi0xOwogICAgaW50IGVsZURpc3QgPSAobisxKyh2LTEpKS92OwoKICAgIGZvcihhdXRvJiBpdCA6IHEpewogICAgICAgIGludCBzeCA9IGl0WzBdOwogICAgICAgIGludCBzeSA9IGl0WzFdOwogICAgICAgIGludCBkeCA9IGl0WzJdOwogICAgICAgIGludCBkeSA9IGl0WzNdOwoKICAgICAgICBpbnQgYW5zID0gTElORjsKCiAgICAgICAgLy8gMS4gQ2hlY2sgZGlyZWN0IHdhbGsgaWYgb24gdGhlIHNhbWUgZmxvb3IgKFN0YW5kYXJkIGVkZ2UgY2FzZSkKICAgICAgICBpZihzeCA9PSBkeCkgewogICAgICAgICAgICBhbnMgPSBhYnMoc3kgLSBkeSk7CiAgICAgICAgfQoKICAgICAgICAvLyAyLiBDaGVjayBFbGV2YXRvcnMgKGNsb3Nlc3QgdHdvIG5laWdoYm9ycyB0byBzeSkKICAgICAgICBhdXRvIGVfaXQgPSB1cHBlcl9ib3VuZChiZWdpbihlbGV2YXRvcnMpLCBlbmQoZWxldmF0b3JzKSwgc3kpOwogICAgICAgIAogICAgICAgIC8vIE9wdGlvbiBBOiBFbGV2YXRvciA+PSBzeSAoQ2VpbCkKICAgICAgICBpZihlX2l0ICE9IGVuZChlbGV2YXRvcnMpKXsKICAgICAgICAgICAgaW50IGQgPSAqZV9pdDsKICAgICAgICAgICAgaW50IGNvc3QgPSBhYnMoZC1zeSkgKyBhYnMoZC1keSkgKyAoYWJzKGR4LXN4KSt2LTEpL3Y7CiAgICAgICAgICAgIGFucyA9IG1pbihhbnMsIGNvc3QpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBPcHRpb24gQjogRWxldmF0b3IgPCBzeSAoRmxvb3IpCiAgICAgICAgaWYoZV9pdCAhPSBiZWdpbihlbGV2YXRvcnMpKXsKICAgICAgICAgICAgaW50IGQgPSAqcHJldihlX2l0KTsKICAgICAgICAgICAgaW50IGNvc3QgPSBhYnMoZC1zeSkgKyBhYnMoZC1keSkgKyAoYWJzKGR4LXN4KSt2LTEpL3Y7CiAgICAgICAgICAgIGFucyA9IG1pbihhbnMsIGNvc3QpOwogICAgICAgIH0KCiAgICAgICAgLy8gMy4gQ2hlY2sgU3RhaXJzIChjbG9zZXN0IHR3byBuZWlnaGJvcnMgdG8gc3kpCiAgICAgICAgYXV0byBzX2l0ID0gdXBwZXJfYm91bmQoYmVnaW4oc3RhaXJzKSwgZW5kKHN0YWlycyksIHN5KTsKICAgICAgICAKICAgICAgICAvLyBPcHRpb24gQTogU3RhaXIgPj0gc3kgKENlaWwpCiAgICAgICAgaWYoc19pdCAhPSBlbmQoc3RhaXJzKSl7CiAgICAgICAgICAgIGludCBkID0gKnNfaXQ7CiAgICAgICAgICAgIGludCBjb3N0ID0gYWJzKGQtc3kpICsgYWJzKGQtZHkpICsgYWJzKGR4LXN4KTsKICAgICAgICAgICAgYW5zID0gbWluKGFucywgY29zdCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIE9wdGlvbiBCOiBTdGFpciA8IHN5IChGbG9vcikKICAgICAgICBpZihzX2l0ICE9IGJlZ2luKHN0YWlycykpewogICAgICAgICAgICBpbnQgZCA9ICpwcmV2KHNfaXQpOwogICAgICAgICAgICBpbnQgY29zdCA9IGFicyhkLXN5KSArIGFicyhkLWR5KSArIGFicyhkeC1zeCk7CiAgICAgICAgICAgIGFucyA9IG1pbihhbnMsIGNvc3QpOwogICAgICAgIH0KCiAgICAgICAgY291dCA8PCBhbnMgPDwgZW5kbDsKICAgIH0KfQoKCgoKdm9pZCBzb2x2ZSgpIHsKICAgIAoKICAgIGNpbj4+biA+PiBtID4+IHN0TGVuID4+IGVsTGVuID4+IHY7CiAgICBzdGFpcnMucmVzaXplKHN0TGVuKTsKICAgIGVsZXZhdG9ycy5yZXNpemUoZWxMZW4pOwogICAgZm9yKGludCBpPTA7IGk8c3RMZW47IGkrKykgY2luID4+IHN0YWlyc1tpXTsKICAgIGZvcihpbnQgaT0wOyBpPGVsTGVuOyBpKyspIGNpbiA+PiBlbGV2YXRvcnNbaV07CiAgICBjaW4gPj4gazsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcShrKTsKICAgIGZvcihpbnQgaT0wOyBpPGs7IGkrKyl7CiAgICAgICAgaW50IHgsIHksIGEsIGI7CiAgICAgICAgY2luID4+IHggPj4geSA+PiBhID4+IGI7CiAgICAgICAgcVtpXSA9IHt4LHksYSxifTsKICAgIH0KICAgIGNvbnNpc3RlbmN5KHEpOwoKCn0KCgoKCmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=