#include using namespace std; #define rep(i,N) for(i=0;iqa,qb; cin>>N>>KA>>KB; rep(i,KA){ cin>>j; da[j]=0; qa.push(j); } rep(i,KB){ cin>>j; db[j]=0; qb.push(j); } cin>>Q; rep(i,Q)cin>>S[i]>>T[i]; while(!qa.empty()){ ll now=qa.front();qa.pop(); ll next; next=now-1; if(next!=0){ if(da[next]==INT64_MAX){ da[next]=da[now]+1; qa.push(next); } } next=now+1; if(next!=N+1){ if(da[next]==INT64_MAX){ da[next]=da[now]+1; qa.push(next); } } } while(!qb.empty()){ ll now=qb.front();qb.pop(); ll next; next=now-1; if(next!=0){ if(db[next]==INT64_MAX){ db[next]=db[now]+1; qb.push(next); } } next=now+1; if(next!=N+1){ if(db[next]==INT64_MAX){ db[next]=db[now]+1; qb.push(next); } } } for(i=1;i<=N;i++){ if(da[i]==0){ dab=min(dab,db[i]); } } rep(i,Q){ ll ans=abs(S[i]-T[i]); ll sum; sum=db[S[i]]+dab+da[T[i]]; ans=min(ans,sum); sum=da[S[i]]+dab+db[T[i]]; ans=min(ans,sum); sum=da[S[i]]+da[T[i]]; ans=min(ans,sum); sum=db[S[i]]+db[T[i]]; ans=min(ans,sum); cout<