#include <bits/stdc++.h>

using namespace std;

int main(void)
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    
    int n,ka,kb,t,q,l,r;
    vector <int> a,b;

    cin >> n >> ka >> kb;
    for(int i=0;i<ka;i++)
    {
        cin >> t;
        a.push_back(t);
    }
    for(int i=0;i<kb;i++)
    {
        cin >> t;
        b.push_back(t);
    }

    sort(a.begin(),a.end());
    sort(b.begin(),b.end());

    int Min = 1e8;

    for(int i=0;i<ka;i++)
    {
        int idx = lower_bound(b.begin(),b.end(),a[i]) - b.begin();
        if(idx < b.size())
        {
            Min = min(Min,abs(b[idx] - a[i]));
        }
        if(idx!=0)
        {
            idx-=1;
            Min = min(Min,abs(b[idx] - a[i]));
        }
    }
    for(int i=0;i<kb;i++)
    {
        int idx = lower_bound(a.begin(),a.end(),b[i]) - a.begin();
        if(idx < a.size())
        {
            Min = min(Min,abs(a[idx] - b[i]));
        }
        if(idx!=0)
        {
            idx-=1;
            Min = min(Min,abs(a[idx] - b[i]));
        }
    }    

    cin >> q;
    for(int i=0;i<q;i++)
    {
        cin >> l >> r;
        int res = r-l;
        int la = 1e8;
        int lb = 1e8;
        int ra = 1e8;
        int rb = 1e8;
        {
            int idx = lower_bound(a.begin(),a.end(),l) - a.begin();
            if(idx < a.size())
            {
                la = min(la,abs(a[idx] - l)); 
            }
            if(idx > 0)
            {
                idx-=1;
                la = min(la,abs(a[idx] - l)); 
            }
            idx = lower_bound(b.begin(),b.end(),l) - b.begin();
            if(idx < b.size())
            {
                lb = min(lb,abs(b[idx] - l)); 
            }
            if(idx > 0)
            {
                idx-=1;
                lb = min(lb,abs(b[idx] - l)); 
            }
        }
        {
            int idx = lower_bound(a.begin(),a.end(),r) - a.begin();
            if(idx < a.size())
            {
                ra = min(ra,abs(a[idx] - r)); 
            }
            if(idx > 0)
            {
                idx-=1;
                ra = min(ra,abs(a[idx] - r)); 
            }
            idx = lower_bound(b.begin(),b.end(),r) - b.begin();
            if(idx < b.size())
            {
                rb = min(rb,abs(b[idx] - r)); 
            }
            if(idx > 0)
            {
                idx-=1;
                rb = min(rb,abs(b[idx] - r)); 
            }
        }    
        res = min(res,la+ra);
        res = min(res,lb+rb);
        res = min(res,la+Min+rb);
        res = min(res,ra+Min+lb);
        cout << res << '\n';    
    }

    return 0;   
}