mod = 10 ** 9 + 7 N, M = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.sort() B.sort() maxT = max(max(A), max(B)) def f(): M = 0 t = 0 i = 0 pb = 0 for b in B: while i < N and A[i] < b: t += (A[i] - pb) * (N - i) % mod t %= mod pb = A[i] i += 1 t += (b - pb) * (N - i) % mod t %= mod pb = b M += t M %= mod return M def g(): res = 0 i = 0 for b in B: while i < N and A[i] < b: res += A[i] i += 1 if i < N and A[i] == b: i += 1 res += b res += sum(A[i:]) return res % mod print(g()) print(f())