#include <bits/stdc++.h>
int mod = 1000000007;
using namespace std;
int main() {
  int64_t ans = 0;
  int n, m;
  int tmp;
  int x_min, x_max, y_max, y_min;
  cin >> n >> m;
  cin >> x_min >> x_max;
  if (x_min > x_max) swap(x_min, x_max);
  for (int i = 2; i < n; i++) {
    cin >> tmp;
    if (x_min > tmp)
      x_min = tmp;
    else if (x_max < tmp)
      x_max = tmp;
  }
  cin >> y_min >> y_max;
  if (y_min > y_max) swap(y_min, y_max);
  for (int i = 2; i < m; i++) {
    cin >> tmp;
    if (y_min > tmp)
      y_min = tmp;
    else if (y_max < tmp)
      y_max = tmp;
  }
  int64_t x = x_max - x_min;
  int64_t y = y_max - y_min;
  ans = ((x % mod) * (y % mod)) % mod;
  ans = ((ans % mod) * ((n - 1) % mod) * ((m - 1) % mod)) % mod;
  printf("%ld\n", ans);
}
