#include <bits/stdc++.h>
using namespace std;
long long dist(long long a, long long b, long long mod)
{
long long d=abs(a-b);
return min(d,mod-d);
}
void add(long long u, const vector<long long>& s, vector<long long>& cands)
{
if(s.empty())
{
return;
}
auto it=lower_bound(s.begin(),s.end(),u);
if(it==s.end())
{
cands.push_back(s.front());
cands.push_back(s.back());
}
else if(it==s.begin())
{
cands.push_back(s.front());
cands.push_back(s.back());
}
else
{
cands.push_back(*it);
cands.push_back(*prev(it));
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
long long n,m,q;
cin>>n>>m>>q;
long long circle=2*n;
vector<long long> s;
s.reserve(2*m);
for(int i=0; i<m; i++)
{
long long k;
cin>>k;
s.push_back(k);
s.push_back(k+n);
}
sort(s.begin(),s.end());
while(q--)
{
long long x,y;
cin>>x>>y;
long long d=dist(x,y,circle);
long long prime=(y+n)%circle;
vector<long long> cands;
add(x,s,cands);
add(prime,s,cands);
long long best=circle;
for(long long k : cands)
{
long long f=dist(x,k,circle)+dist(k,prime,circle);
if(f<best)
{
best=f;
}
}
long long shortcut=best+1;
cout<<min(d,shortcut)<<endl;
}
return 0;
}