import bisect

def main():
    a, b, q = map(int, input().split())
    s = [0 for _ in range(a)]
    for i in range(a):
        s[i] = int(input())
    t = [0 for _ in range(b)]
    for i in range(b):
        t[i] = int(input())
    x = [0 for _ in range(q)]
    for i in range(q):
        x[i] = int(input())

    ans = [10**18 for _ in range(q)]
    for i in range(q):
        next1 = bisect.bisect(s, x[i])
        if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

        next1 = bisect.bisect(t, x[i])
        if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

    for i in range(q):
        print(ans[i])

if __name__ == '__main__':
    main() import bisect bisect def main():
    a, b, q = map(int, input().split())
    s = [0 for _ in range(a)]
    for i in range(a):
        s[i] = int(input())
    t = [0 for _ in range(b)]
    for i in range(b):
        t[i] = int(input())
    x = [0 for _ in range(q)]
    for i in range(q):
        x[i] = int(input())

    ans = [10**18 for _ in range(q)]
    for i in range(q):
        next1 = bisect.bisect(s, x[i])
        if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

        next1 = bisect.bisect(t, x[i])
        if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

    for i in range(q):
        print(ans[i]) main a, b, q = map(int, input().split()) a map(int, input().split()) map int input().split() ().split () input split b q 0 for _ in range(a) for _ in range(a) _ range(a) range a for _ in range(a) 0 s = [0 for _ in range(a)] s [0 for _ in range(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 0 for _ in range(b) for _ in range(b) _ range(b) range b for _ in range(b) 0 t = [0 for _ in range(b)] t [0 for _ in range(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 0 for _ in range(q) for _ in range(q) _ range(q) range q for _ in range(q) 0 x = [0 for _ in range(q)] x [0 for _ in range(q)] for i in range(q):
        x[i] = int(input())

     i range(q) range q x[i] = int(input()) x[i] x i int(input()) int input() input 10**18 for _ in range(q) for _ in range(q) _ range(q) range q for _ in range(q) 10**18 10 18 ans = [10**18 for _ in range(q)] ans [10**18 for _ in range(q)] for i in range(q):
        next1 = bisect.bisect(s, x[i])
        if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

        next1 = bisect.bisect(t, x[i])
        if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

     i range(q) range q next1 = bisect.bisect(s, x[i]) next1 bisect.bisect(s, x[i]) bisect.bisect bisect bisect s x[i] x i if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
         next1 > 0 next1 0 d1 = x[i] - s[next1-1] d1 x[i] - s[next1-1] x[i] x i s[next1-1] s next1-1 next1 1 next2 = bisect.bisect(t, s[next1-1]) next2 bisect.bisect(t, s[next1-1]) bisect.bisect bisect bisect t s[next1-1] s next1-1 next1 1 if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
             next2 > 0 next2 0 d2 = d1 + (s[next1-1] - t[next2-1]) d2 d1 + (s[next1-1] - t[next2-1]) d1 s[next1-1] - t[next2-1] s[next1-1] s next1-1 next1 1 t[next2-1] t next2-1 next2 1 if d2 < ans[i]:
                    ans[i] = d2
             d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
         next2 < b next2 b d2 = d1 + (t[next2] - s[next1-1]) d2 d1 + (t[next2] - s[next1-1]) d1 t[next2] - s[next1-1] t[next2] t next2 s[next1-1] s next1-1 next1 1 if d2 < ans[i]:
                    ans[i] = d2
         d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

         next1 < a next1 a d1 = s[next1] - x[i] d1 s[next1] - x[i] s[next1] s next1 x[i] x i next2 = bisect.bisect(t, s[next1]) next2 bisect.bisect(t, s[next1]) bisect.bisect bisect bisect t s[next1] s next1 if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
             next2 > 0 next2 0 d2 = d1 + (s[next1] - t[next2-1]) d2 d1 + (s[next1] - t[next2-1]) d1 s[next1] - t[next2-1] s[next1] s next1 t[next2-1] t next2-1 next2 1 if d2 < ans[i]:
                    ans[i] = d2
             d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

         next2 < b next2 b d2 = d1 + (t[next2] - s[next1]) d2 d1 + (t[next2] - s[next1]) d1 t[next2] - s[next1] t[next2] t next2 s[next1] s next1 if d2 < ans[i]:
                    ans[i] = d2

         d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 next1 = bisect.bisect(t, x[i]) next1 bisect.bisect(t, x[i]) bisect.bisect bisect bisect t x[i] x i if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
         next1 > 0 next1 0 d1 = x[i] - t[next1-1] d1 x[i] - t[next1-1] x[i] x i t[next1-1] t next1-1 next1 1 next2 = bisect.bisect(s, t[next1-1]) next2 bisect.bisect(s, t[next1-1]) bisect.bisect bisect bisect s t[next1-1] t next1-1 next1 1 if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
             next2 > 0 next2 0 d2 = d1 + (t[next1-1] - s[next2-1]) d2 d1 + (t[next1-1] - s[next2-1]) d1 t[next1-1] - s[next2-1] t[next1-1] t next1-1 next1 1 s[next2-1] s next2-1 next2 1 if d2 < ans[i]:
                    ans[i] = d2
             d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
         next2 < a next2 a d2 = d1 + (s[next2] - t[next1-1]) d2 d1 + (s[next2] - t[next1-1]) d1 s[next2] - t[next1-1] s[next2] s next2 t[next1-1] t next1-1 next1 1 if d2 < ans[i]:
                    ans[i] = d2
         d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

     next1 < b next1 b d1 = t[next1] - x[i] d1 t[next1] - x[i] t[next1] t next1 x[i] x i next2 = bisect.bisect(s, t[next1]) next2 bisect.bisect(s, t[next1]) bisect.bisect bisect bisect s t[next1] t next1 if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
             next2 > 0 next2 0 d2 = d1 + (t[next1] - s[next2-1]) d2 d1 + (t[next1] - s[next2-1]) d1 t[next1] - s[next2-1] t[next1] t next1 s[next2-1] s next2-1 next2 1 if d2 < ans[i]:
                    ans[i] = d2
             d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

     next2 < a next2 a d2 = d1 + (s[next2] - t[next1]) d2 d1 + (s[next2] - t[next1]) d1 s[next2] - t[next1] s[next2] s next2 t[next1] t next1 if d2 < ans[i]:
                    ans[i] = d2

     d2 < ans[i] d2 ans[i] ans i ans[i] = d2 ans[i] ans i d2 for i in range(q):
        print(ans[i]) i range(q) range q print(ans[i]) print ans[i] ans i if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def main():
    a, b, q = map(int, input().split())
    s = [0 for _ in range(a)]
    for i in range(a):
        s[i] = int(input())
    t = [0 for _ in range(b)]
    for i in range(b):
        t[i] = int(input())
    x = [0 for _ in range(q)]
    for i in range(q):
        x[i] = int(input())

    ans = [10**18 for _ in range(q)]
    for i in range(q):
        next1 = bisect.bisect(s, x[i])
        if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

        next1 = bisect.bisect(t, x[i])
        if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

    for i in range(q):
        print(ans[i]) def main():
    a, b, q = map(int, input().split())
    s = [0 for _ in range(a)]
    for i in range(a):
        s[i] = int(input())
    t = [0 for _ in range(b)]
    for i in range(b):
        t[i] = int(input())
    x = [0 for _ in range(q)]
    for i in range(q):
        x[i] = int(input())

    ans = [10**18 for _ in range(q)]
    for i in range(q):
        next1 = bisect.bisect(s, x[i])
        if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

        next1 = bisect.bisect(t, x[i])
        if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

    for i in range(q):
        print(ans[i]) main
import bisect

def main():
    a, b, q = map(int, input().split())
    s = [0 for _ in range(a)]
    for i in range(a):
        s[i] = int(input())
    t = [0 for _ in range(b)]
    for i in range(b):
        t[i] = int(input())
    x = [0 for _ in range(q)]
    for i in range(q):
        x[i] = int(input())

    ans = [10**18 for _ in range(q)]
    for i in range(q):
        next1 = bisect.bisect(s, x[i])
        if next1 > 0:
            d1 = x[i] - s[next1-1]
            next2 = bisect.bisect(t, s[next1-1])
            if next2 > 0:
                d2 = d1 + (s[next1-1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < a:
            d1 = s[next1] - x[i]
            next2 = bisect.bisect(t, s[next1])
            if next2 > 0:
                d2 = d1 + (s[next1] - t[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < b:
                d2 = d1 + (t[next2] - s[next1])
                if d2 < ans[i]:
                    ans[i] = d2

        next1 = bisect.bisect(t, x[i])
        if next1 > 0:
            d1 = x[i] - t[next1-1]
            next2 = bisect.bisect(s, t[next1-1])
            if next2 > 0:
                d2 = d1 + (t[next1-1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1-1])
                if d2 < ans[i]:
                    ans[i] = d2
        if next1 < b:
            d1 = t[next1] - x[i]
            next2 = bisect.bisect(s, t[next1])
            if next2 > 0:
                d2 = d1 + (t[next1] - s[next2-1])
                if d2 < ans[i]:
                    ans[i] = d2
            if next2 < a:
                d2 = d1 + (s[next2] - t[next1])
                if d2 < ans[i]:
                    ans[i] = d2

    for i in range(q):
        print(ans[i])

if __name__ == '__main__':
    main()
