#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;
}