#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int t,n,m;
bool q,p;
long long p1,p2,p3,p4,ans1,ans2,ans3,ans4,a[100010],b[100010],c[100010],mid,l,r,aa,bb,cc,dd,ee,ff;
void search1(long long x){
l=1,r=n;
if(x<=a[1]) {
mid=1;
return ;}
if(x>=a[n]) {
mid=n;
return;}
while(l<=r){
mid=(l+r)/2;
if(x>a[mid]&&x<a[mid+1])
return ;
if(a[mid]==x){
p=1;
return;}
if(x<a[mid]) r=mid;
if(x>a[mid]) l=mid;}
}
void search2(long long x){
l=1,r=m;
if(x<=b[1]) {
mid=1;
return;}
if(x>=b[m]) {
mid=m;
return;}
while(l<=r){
mid=(l+r)/2;
if(x>b[mid]&&x<b[mid+1])
return ;
if(b[mid]==x){
p=1;
return;}
if(x<b[mid]) r=mid;
if(x>b[mid]) l=mid;}
}
long long hs(long long a,long long b,long long n){
if(a==b) return abs(a-n);
if(a>b&&b>n) return a-n;
if(a>n&&n>b) return a-b+min(a-n,n-b);
if(b>a&&a>n) return b-n;
if(b>n&&n>a) return b-a+min(b-n,n-a);
if(n>a&&a>b) return n-b;
if(n>b&&b>a) return n-a;
}
int main(){
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=1;i<=m;i++)
scanf("%lld",&b[i]);
if(n==1&&m==1){
long long cnta=a[1];
long long cntb=b[1];
for(int i=1; i<=t; i++) {
long long x;
cin>>x;
long long ca=x-cnta;
long long cb=x-cntb;
if(ca==0||cb==0) {
cout<<abs(ca+cb)<<endl;
}
if((ca>0&&cb>0)||(ca<0&&cb<0)) {
cout<<max(abs(ca),abs(cb))<<endl;
}
if((ca>0&&cb<0)||(ca<0&&cb>0)) {
cout<<abs(ca)+abs(cb)+min(abs(ca),abs(cb))<<endl;
}
}
return 0;
}
sort(a+1,a+1+n);
sort(b+1,b+1+m);
for(int i=1;i<=t;i++)
scanf("%lld",&c[i]);
for(int i=1;i<=t;i++){
p=q=0;
search1(c[i]);
if(p==1){
search2(c[i]);
if(q==1)
printf("0\n");
else printf("%lld\n",min(abs(c[i]-b[mid]),abs(c[i]-b[mid+1])));
continue;
}
aa=mid,bb=mid+1;
search2(a[aa]);
cc=mid,dd=mid+1;
search2(a[bb]);
ee=mid,ff=mid+1;
ans1=hs(a[aa],b[cc],c[i]);
ans2=hs(a[aa],b[dd],c[i]);
ans3=hs(a[bb],b[ee],c[i]);
ans4=hs(a[bb],b[ff],c[i]);
printf("%lld\n",min(min(ans1,ans2),min(ans3,ans4)));
}
return 0;
}