A, B, Q = map(int, input().split())

S = [0]*A
for i in range(A):
  S[i] = int(input())

T = [0]*B
for i in range(B):
  T[i] = int(input())

import bisect
ans = []
for i in range(Q):
  mini = 10**11
  x = int(input())
  indS = bisect.bisect(S,x)
  indT = bisect.bisect(T,x)
  if indS != A: #Sの右
    if indT != B:
        mini = min(max(S[indS],T[indT])-x,mini) #右右
        # print('rr',mini)
    if indT != 0:
        mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) #右左
        # print('rl',mini)
  if indS != 0: #Sの左
    if indT != B:
        mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini)  #左右
        # print('lr',mini)
    if indT != 0:
        mini = min(x-min(S[indS-1],T[indT-1]),mini) #左左
        # print('ll',mini)
  ans.append(mini)



# print(ans)
print(*ans, sep='\n') A, B, Q = map(int, input().split()) A map(int, input().split()) map int input().split() ().split () input split B Q S = [0]*A S [0]*A [0] 0 A for i in range(A):
  S[i] = int(input()) i range(A) range A S[i] = int(input()) S[i] S i int(input()) int input() input T = [0]*B T [0]*B [0] 0 B for i in range(B):
  T[i] = int(input()) i range(B) range B T[i] = int(input()) T[i] T i int(input()) int input() input import bisect bisect ans = [] ans [] for i in range(Q):
  mini = 10**11
  x = int(input())
  indS = bisect.bisect(S,x)
  indT = bisect.bisect(T,x)
  if indS != A: #Sの右
    if indT != B:
        mini = min(max(S[indS],T[indT])-x,mini) #右右
        # print('rr',mini)
    if indT != 0:
        mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) #右左
        # print('rl',mini)
  if indS != 0: #Sの左
    if indT != B:
        mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini)  #左右
        # print('lr',mini)
    if indT != 0:
        mini = min(x-min(S[indS-1],T[indT-1]),mini) #左左
        # print('ll',mini)
  ans.append(mini)



# print(ans) i range(Q) range Q mini = 10**11 mini 10**11 10 11 x = int(input()) x int(input()) int input() input indS = bisect.bisect(S,x) indS bisect.bisect(S,x) bisect.bisect bisect bisect S x indT = bisect.bisect(T,x) indT bisect.bisect(T,x) bisect.bisect bisect bisect T x if indS != A: #Sの右
    if indT != B:
        mini = min(max(S[indS],T[indT])-x,mini) #右右
        # print('rr',mini)
    if indT != 0:
        mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) #右左
        # print('rl',mini)
   indS != A indS A if indT != B:
        mini = min(max(S[indS],T[indT])-x,mini) #右右
        # print('rr',mini)
     indT != B indT B mini = min(max(S[indS],T[indT])-x,mini) mini min(max(S[indS],T[indT])-x,mini) min max(S[indS],T[indT])-x max(S[indS],T[indT]) max S[indS] S indS T[indT] T indT x mini if indT != 0:
        mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) #右左
        # print('rl',mini)
   indT != 0 indT 0 mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) mini min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) min S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]) S[indS]-T[indT-1] S[indS] S indS T[indT-1] T indT-1 indT 1 min(S[indS]-x,x-T[indT-1]) min S[indS]-x S[indS] S indS x x-T[indT-1] x T[indT-1] T indT-1 indT 1 mini if indS != 0: #Sの左
    if indT != B:
        mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini)  #左右
        # print('lr',mini)
    if indT != 0:
        mini = min(x-min(S[indS-1],T[indT-1]),mini) #左左
        # print('ll',mini)
   indS != 0 indS 0 if indT != B:
        mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini)  #左右
        # print('lr',mini)
     indT != B indT B mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini) mini min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini) min T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x) T[indT]-S[indS-1] T[indT] T indT S[indS-1] S indS-1 indS 1 min(x-S[indS-1],T[indT]-x) min x-S[indS-1] x S[indS-1] S indS-1 indS 1 T[indT]-x T[indT] T indT x mini if indT != 0:
        mini = min(x-min(S[indS-1],T[indT-1]),mini) #左左
        # print('ll',mini)
   indT != 0 indT 0 mini = min(x-min(S[indS-1],T[indT-1]),mini) mini min(x-min(S[indS-1],T[indT-1]),mini) min x-min(S[indS-1],T[indT-1]) x min(S[indS-1],T[indT-1]) min S[indS-1] S indS-1 indS 1 T[indT-1] T indT-1 indT 1 mini ans.append(mini) ans.append ans append mini print(*ans, sep='\n') print *ans ans sep='\n' sep '\n' mini = min(x-min(S[indS-1],T[indT-1]),mini) min(x-min(S[indS-1],T[indT-1]),mini) mini indS = bisect.bisect(S,x) bisect.bisect(S,x) indS x = int(input()) int(input()) x mini = 10**11 10**11 mini T = [0]*B [0]*B T mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) mini mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini) min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini) mini ans = [] [] ans A, B, Q = map(int, input().split()) map(int, input().split()) A Q = map(int, input().split()) map(int, input().split()) Q S = [0]*A [0]*A S mini = min(max(S[indS],T[indT])-x,mini) min(max(S[indS],T[indT])-x,mini) mini indT = bisect.bisect(T,x) bisect.bisect(T,x) indT B, Q = map(int, input().split()) map(int, input().split()) B
A, B, Q = map(int, input().split())

S = [0]*A
for i in range(A):
  S[i] = int(input())

T = [0]*B
for i in range(B):
  T[i] = int(input())

import bisect
ans = []
for i in range(Q):
  mini = 10**11
  x = int(input())
  indS = bisect.bisect(S,x)
  indT = bisect.bisect(T,x)
  if indS != A: #Sの右
    if indT != B:
        mini = min(max(S[indS],T[indT])-x,mini) #右右
        # print('rr',mini)
    if indT != 0:
        mini = min(S[indS]-T[indT-1]+min(S[indS]-x,x-T[indT-1]),mini) #右左
        # print('rl',mini)
  if indS != 0: #Sの左
    if indT != B:
        mini = min(T[indT]-S[indS-1]+min(x-S[indS-1],T[indT]-x),mini)  #左右
        # print('lr',mini)
    if indT != 0:
        mini = min(x-min(S[indS-1],T[indT-1]),mini) #左左
        # print('ll',mini)
  ans.append(mini)



# print(ans)
print(*ans, sep='\n')