## https://yukicoder.me/problems/no/1610 import heapq MAX_INT = 10 ** 18 def main(): N, M = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.append(-MAX_INT) A.append(MAX_INT) a_list = A + B a_list.sort() a_set = set(A) b_set = set(B) a_index = 0 answer = 0 max_value = -2 * MAX_INT for i in range(1, len(a_list)): x = a_list[i] if x in b_set: max_value = max(max_value, x - a_list[i - 1]) if x in a_set: max_value = max(max_value, x - a_list[i - 1]) total_value = a_list[i] - a_list[a_index] answer += total_value - max_value a_index = i max_value = -2 * MAX_INT print(answer) if __name__ == "__main__": main()