#include<bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; template <class T> using V=vector<T>; template <class T> using VV=V<V<T>>; const int INF=1e9; int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int n,ka,kb; cin>>n>>ka>>kb; V<int> A(n+1),B(n+1); rep(i,ka){ int a; cin>>a; A[a]=1; } rep(i,kb){ int b; cin>>b; B[b]=1; } V<int> LA(n+2),LB(n+2),RA(n+2),RB(n+2); LA[0]=INF,LB[0]=INF; for(int i=1;i<=n;i++){ if(A[i]==0) LA[i]=LA[i-1]+1; if(B[i]==0) LB[i]=LB[i-1]+1; } RA[n+1]=INF,RB[n+1]=INF; for(int i=n;i>=1;i--){ if(A[i]==0) RA[i]=RA[i+1]+1; if(B[i]==0) RB[i]=RB[i+1]+1; } V<int> C(n+1),D(n+1); for(int i=1;i<=n;i++){ C[i]=min(LA[i],RA[i]); D[i]=min(LB[i],RB[i]); } int la=-INF,lb=-INF,mi=INF; for(int i=1;i<=n;i++){ if(A[i]) la=i; if(B[i]) lb=i; if(A[i]) mi=min(mi,i-lb); if(B[i]) mi=min(mi,i-la); } int q; cin>>q; while(q--){ int s,t; cin>>s>>t; int ans=t-s; ans=min(ans,C[s]+C[t]); ans=min(ans,D[s]+D[t]); ans=min(ans,C[s]+D[t]+mi); ans=min(ans,D[s]+C[t]+mi); cout<<ans<<'\n'; } return 0; }