A, B, Q = gets.chomp.split.map(&:to_i)
as = 0.upto(A-1).map{|i| [gets.to_i, "a", i]}
bs = 0.upto(B-1).map{|i| [gets.to_i, "b", i]}
xs = 0.upto(Q-1).map{|i| gets.to_i}

abs = (as + bs).sort{|e1, e2| e1[0] <=> e2[0]}
ds = abs.map{|ab, k, i| ab}
r_abs = abs.reverse
abs_len = abs.length

0.upto(Q-1).each do |q|
  #p "+++++++++++++"
  x = xs[q]
  i = ds.find_index{|ab| x <= ab}
  if i.nil? # 一番東にいる場合
    fst = abs[-1]
    fst_k = fst[1]
    snd = r_abs.find{|ab, k, i| k != fst_k}
    ans_ww = x - snd[0] # ans for w & w
    ans_we = ans_ee = ans_ew = 10**11
  elsif i == 0 # 一番西にいる場合
    fst = abs[0]
    fst_k = fst[1]
    snd = abs.find{|ab, k, i| k != fst_k}
    ans_ee = snd[0] - x
    ans_ww = ans_we = ans_ew = 10**11
  else # 西に一つ以上ある場合
    west_fst = abs[i-1]
    east_fst = abs[i]
    # go west at first
    west_fst_k = west_fst[1]
    west_snd = r_abs[(abs_len-i)..-1].find{|ab| ab[1] != west_fst_k}
    if west_snd.nil? # 西に二種類ない場合
      ans_ww = 10**11
      east_snd = (west_fst_k == "a" ? bs[0] : as[0])
      ans_we = (x - west_fst[0]) + (east_snd[0] - west_fst[0])
    else # 西に二種類ある場合
      ans_ww = x - west_snd[0]
      if west_snd[2] == (west_snd[1] == "a" ? A-1 : B-1)
        ans_we = 10**11
      else
        east_snd = (west_snd[1] == "a" ? as[west_snd[2]+1] : bs[west_snd[2]+1])
        ans_we = (x - west_fst[0]) + (east_snd[0] - west_fst[0]) # ans for w & e
      end
    end
    # go east at first
    east_fst_k = east_fst[1]
    east_snd = abs[i..-1].find{|ab| ab[1] != east_fst_k}
    if east_snd.nil? # 東に二種類ない場合
      ans_ee = 10**11
      west_snd = (east_fst_k == "a" ? bs[-1] : as[-1])
      ans_ew = (east_fst[0] - x) + (east_fst[0] - west_snd[0])
    else # 東に二種類ある場合
      ans_ee = east_snd[0] - x
      if east_snd[2] == 0
        ans_ew = 10**11
      else
        west_snd = (east_snd[1] == "a" ? as[east_snd[2]-1] : bs[east_snd[2]-1])
        ans_ew = (east_fst[0] - x) + (east_fst[0] - west_snd[0])
      end
    end
  end
  ans = [ans_ww, ans_we, ans_ee, ans_ew].min
  print("#{ans}\n")
end
