#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int maxn = 5e5+10;
int n, m, q;
set<int> st;
int dis(int x){
return min(x, 2*n-x);
}
int run(int x, int y, int p){
return dis(abs(x-p)) + dis(abs( (p+n)%(2*n)-y) ) + 1;
}
int f(int x, int y){
//cout<<x<<" "<<y<<"? : \n";
auto it = st.lower_bound(x);
int p=0, d=1e9;
if(it==st.end()){
p = *prev(it);
d = run(x, y, p);
// cout<<" ==end "<<p<<" / "<<dis(abs(x-p))<<" "<<dis(abs( (p+n)-y) )<<" +1 = "<<d<<"\n";
}else if(it==st.begin()){
p = *it;
d = run(x, y, p);
//cout<<" ==beg "<<p<<" / "<<dis(abs(x-p))<<" "<<dis(abs( (p+n)-y) )<<" +1 = "<<d<<"\n";
}else{
p = *it;
d = run(x, y, p);
// cout<<" >= "<<p<<" / "<<dis(abs(x-p))<<" "<<dis(abs( (p+n)%(2*n)-y) )<<" +1 = "<<d<<"\n";
p = *prev(it);
d = min( d, run(x, y, p));
// cout<<" < "<<p<<" / "<<dis(abs(x-p))<<" "<<dis(abs( (p+n)-y) )<<" +1 = "<<d<<"\n";
}
// cout<<d<<"\n";
return d;
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
cin>>n>>m>>q;
while(m--){
int a; cin>>a;
st.insert(a);
st.insert(a+n);
}
while(q--){
int x, y; cin>>x>>y;
cout<< min({ dis(abs(x-y)), f(x, y), f(y, x) }) <<"\n";
/* if(x>y) swap(x, y);
int d=1e9;
if(y-x <= n/2 + (n%2)){
// cout<<n/2<<" ! ";
cout<< y-x <<"\n";
}
else if(abs(x + 2*n - y) <= n/2 + (n%2)){
// cout<<n/2<<" +n ";
cout << abs(x + 2*n - y) << "\n";
}
else{
// cout<<x<<" "<<y<<" : \n";
if(x >= n and y >= n){
// cout<<">>\n";
d = min( f(x, y), f(y%n, x%n) );
}
else if(y >= n){
// cout<<"<>\n";
// cout<<x<<" "<<y<<"- : \n";
d = min( f(x, y), f(y%n, x+n) );
}
else{
// cout<<"<<\n";
d = min( f(x, y), f(y, x) );
}
}*/
}
return 0;
}