A, B, Q = gets.split.map(&:to_i)
s = []
t = []
A.times do
  s << gets.chomp.to_i
end
B.times do
  t << gets.chomp.to_i
end
s.sort!
t.sort!

x = 0
temp_index = 0
Q.times do
  x = gets.chomp.to_i
  # 各近傍値を取る
  tmp = s.bsearch_index { |v| v >= x }
  sl, su = tmp ? (tmp == 0 ? [nil, s[0]] : [s[tmp-1], s[tmp]]) : [s[A - 1], nil]
  tmp = t.bsearch_index { |v| v >= x }
  tl, tu = tmp ? (tmp == 0 ? [nil, t[0]] : [t[tmp-1], t[tmp]]) : [t[B - 1], nil]
  m = 2 * (10 ** 10) + 1
  if sl
    if tl
      m = [[x - sl, x - tl].max, m].min
    end
    if tu
      m = [(tu - sl) + [x - sl, tu - x].min, m].min
    end
  end
  if su
    if tl
      m = [(su - tl) + [su-x, x-tl].min , m].min
    end
    if tu
      m = [[su-x, tu-x].max, m].min
    end
  end
  puts m
end