#include<bits/stdc++.h>
using namespace std;
const int mx=5e5+1;
int n,m,q;
vector<int> tel;
int dis(int x,int y){
if(x>y) swap(x,y);
return min(abs(x-y),x+2*n-y);
}
int ut_dis(int x,int y,int t){
if(t>=n) return dis(x,t)+1+dis(t-n,y);
else return dis(x,t)+1+dis(t+n,y);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m>>q;
for(int i=0;i<m;i++){
int x;
cin>>x;
tel.push_back(x);
tel.push_back(x+n);
}
sort(tel.begin(),tel.end());
while(q--){
int x,y,ans;
cin>>x>>y;
ans=dis(x,y);
auto it=lower_bound(tel.begin(),tel.end(),x);
if(it==tel.end()){
it--;
ans=min(ans,ut_dis(x,y,*it));
it=tel.begin();
ans=min(ans,ut_dis(x,y,*it));
}
else if(it==tel.begin()){
ans=min(ans,ut_dis(x,y,*it));
it=tel.end(); it--;
ans=min(ans,ut_dis(x,y,*it));
}
else{
ans=min(ans,ut_dis(x,y,*it));
it--;
ans=min(ans,ut_dis(x,y,*it));
}
cout<<ans<<'\n';
}
}
// A. Circle Passing