from bisect import bisect_left n, ka, kb = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) mi = n + 1 for a in A: p = bisect_left(B, a) if p < len(B): mi = min(mi, abs(a - B[p])) if p > 0: mi = min(mi, abs(a - B[p - 1])) def f(x): pa = bisect_left(A, x) da = n + 1 if pa < len(A): da = min(da, abs(x - A[pa])) if pa > 0: da = min(da, abs(x - A[pa - 1])) pb = bisect_left(B, x) db = n + 1 if pb < len(B): db = min(db, abs(x - B[pb])) if pb > 0: db = min(db, abs(x - B[pb - 1])) return da, db Q = int(input()) for _ in range(Q): s, t = map(int, input().split()) das, dbs = f(s) dat, dbt = f(t) ans = min(abs(s - t), das + dat, dbs + dbt, das + dbt + mi, dbs + dat + mi) print(ans)