output_description: Print the total area of the rectangles, modulo 10^9+7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      n m
      x_1 x_2 ... x_n
      y_1 y_2 ... y_m
attempt: import sys
  import math
  import fractions
  import bisect
  import queue
  import heapq
  import collections
  import itertools
  
  sys.setrecursionlimit(4100000)
  
  MOD = int(1e9 + 7)
  PI = 3.14159265358979323846264338327950288
  INF = 1e18
  
  """
  1行のint=====================================
  N, K = map(int, input().split())
  N, M = map(int, input().split())
  A, B = map(int, input().split())
  
  H, W = map(int, input().split())
  
  L, R = map(int, input().split())
  
  1行のstring=================================
  S, T = input().split()
  
  1行の整数配列================================
  P = list(map(int,input().split()))
  
  A = list(map(int,input().split()))
  B = list(map(int,input().split()))
  C = list(map(int,input().split()))
  D = list(map(int,input().split()))
  
  L = list(map(int,input().split()))
  R = list(map(int,input().split()))
  
  T = list(map(int,input().split()))
  
  改行あり整数==================================
  X = []
  Y = []
  for i in range(N):
      x1,y1=[int(i) for i in input().split()]
      X.append(x1)
      Y.append(y1)
  
  A = []
  for i in range(N):
      a=int(input())
      A.append(a)
  
  Pair = []
  for i in range(N):
      x1,y1=[int(i) for i in input().split()]
      Pair.append((x1, y1))
      
  2次元整数配列=====================================
  A = []
  for i in range(N):
      tmp = list(map(int,input().split()))
      A.append(tmp)
  
  
  N行M列の初期化====================================
  dp = [[VAL] * RETU for i in range(GYO)]
  
  """
  
  
  N, M = map(int, input().split())
  X = list(map(int, input().split()))
  Y = list(map(int, input().split()))
  
  
  DX = [X[i + 1] - X[i] for i in range(N - 1)]
  DY = [Y[i + 1] - Y[i] for i in range(M - 1)]
  
  N -= 1
  M -= 1
  
  countX = [(i + 1) * (N - i) for i in range(N)]
  countY = [(i + 1) * (N - i) for i in range(M)]
  
  local = 0
  for i in range(M):
      local += countY[i] * DY[i]
  local *= DX[0] * countX[0]
  
  ans = local % MOD
  for i in range(1, N):
      local = local * countX[i] * DX[i] / countX[i - 1] / DX[i - 1]
      ans += local
      ans = int(ans)
      ans %= MOD
  
  print(int(ans))
  
problem_description: Statement
  
  On a two-dimensional plane, there are m lines drawn parallel to the x axis,
  and n lines drawn parallel to the y axis. Among the lines parallel to the x
  axis, the i-th from the bottom is represented by y = y_i. Similarly, among the
  lines parallel to the y axis, the i-th from the left is represented by x =
  x_i.
  
  For every rectangle that is formed by these lines, find its area, and print
  the total area modulo 10^9+7.
  
  That is, for every quadruple (i,j,k,l) satisfying 1\leq i < j\leq n and 1\leq
  k < l\leq m, find the area of the rectangle formed by the lines x=x_i, x=x_j,
  y=y_k and y=y_l, and print the sum of these areas modulo 10^9+7.
samples: [{"input": "3 3\n    1 3 4\n    1 3 6", "output": "60\n    \n\nThe following figure illustrates this input:\n\n![sample1-1](https://atcoder.jp/img/arc071/aec4d5cc2e5c73dbee455be237a649a5.png)\n\nThe total area of the nine rectangles A, B, ..., I shown in the following\nfigure, is 60.\n\n![sample1-2](https://atcoder.jp/img/arc071/f0771c0f7e68af2b00e7513186f585ff.png)\n\n* * *"}, {"input": "6 5\n    -790013317 -192321079 95834122 418379342 586260100 802780784\n    -253230108 193944314 363756450 712662868 735867677", "output": "835067060"}]