A,B,Q=io.read("n","n","n")
s={}
t={}
x={}
for i=1,A do
    s[i]=io.read("n")
end
for i=1,B do
    t[i]=io.read("n")
end
for i=1,Q do
    x[i]=io.read("n")
end
function dis(a,q)
    local a1
    local a2
    if q<a[1] then
        a1=0
        a2=q-a[1]
    elseif q>a[#a] then
        a1=q-a[#a]
        a2=0
    else
        for i=1,#a do
            if q-a[i]<0 then
                a1=q-a[i-1]
                a2=q-a[i]
                break
            end
        end
    end
    return math.abs(a1),math.abs(a2)
end
function asd(a,b,q)
    local a1
    local a2
    local b1
    local b2
    a1,a2=dis(a,q)
    b1,b2=dis(b,q)
    local t={}
    if a1~=0 and a2~=0 and b1~=0 and b2~=0 then
        t[1]=math.min(2*a1+b2,a1+2*b2)
        t[2]=math.max(a1,b1)
        t[3]=math.max(a2,b2)
        t[4]=math.min(2*b1+a2,b1+2*a2)
    end
    if a1==0 and b1==0 then 
        t[1]=math.max(a2,b2)
    elseif a1==0 and b2==0 then
        t[1]=math.min(2*a2+b1,2*b1+a2)
        elseif a2==0 and b2==0 then
        t[1]=math.max(a1,b1)
        elseif a2==0 and b1==0 then
        t[1]= math.min(2*a1+b2,2*b2+a1)
        elseif a1==0 then
            t[1]=math.max(a2,b2)
            t[2]=math.min(2*a2+b1,2*b1+a2)
            elseif a2==0 then
                t[1]=math.max(a1,b1)
                t[2]=math.min(2*a1+b2,a1+2*b2)
                elseif b1==0 then
                    t[1]=math.max(a2,b2)
                    t[2]=math.min(2*a1+b2,2*b2+a1)
                    elseif b2==0 then
                        t[1]=math.max(a1,b1)
                        t[2]=math.min(2*b1+a2,2*a2+b1)
    end
    table.sort(t)
    print(t[1])    
end
for i=1,Q do
    asd(s,t,x[i])
end