#include <bits/stdc++.h>
using namespace std;
long long n, m, s, e, v, q;
vector<long long> vs, ve;
int32_t main() {
  ios::sync_with_stdio(0), cin.tie(0);
  cin >> n >> m >> s >> e >> v;
  vs.resize(s), ve.resize(e);
  for (auto& u : vs) {
    cin >> u;
  }
  for (auto& u : ve) {
    cin >> u;
  }
  cin >> q;
  while (q--) {
    long long x, y, a, b;
    cin >> x >> y >> a >> b;
    if (x == a) {
      cout << abs(y - b) << '\n';
    } else {
      long long ans = 1e18, idx, es = (abs(x - a) + v - 1) / v;
      if (y > b) swap(y, b);
      idx = lower_bound(vs.begin(), vs.end(), y) - vs.begin();
      if (idx < s) {
        ans = min(ans, abs(vs[idx] - y) + abs(vs[idx] - b) + abs(x - a));
      }
      idx--;
      if (idx >= 0) {
        ans = min(ans, abs(vs[idx] - y) + abs(vs[idx] - b) + abs(x - a));
      }
      idx = lower_bound(ve.begin(), ve.end(), y) - ve.begin();
      if (idx < e) {
        ans = min(ans, abs(ve[idx] - y) + abs(ve[idx] - b) + es);
      }
      idx--;
      if (idx >= 0) {
        ans = min(ans, abs(ve[idx] - y) + abs(ve[idx] - b) + es);
      }
      cout << ans << '\n';
    }
  }
  return 0;
}
