#include <bits/stdc++.h>
long n, m;
long x[100000], y[100000];
int input() {
  std::cin >> n >> m;
  for (int i = 0; i < n; i++) {
    std::cin >> x[i];
  }
  for (int i = 0; i < m; i++) {
    std::cin >> y[i];
  }
  return 0;
}
int run() {
  long s = 0, area, ds;
  for (long i = 0; i < n - 1; i++) {
    for (long j = 0; j < m - 1; j++) {
      area = ((x[i + 1] - x[i]) * (y[j + 1] - y[j]));
      ds = area * (i + 1) * (n - 1 - i) * (j + 1) * (m - 1 - j);
      s += ds;
    }
  }
  s %= 1000000007;
  std::cout << s << std::endl;
  return 0;
}
int testrun() {
  long s = 0;
  for (int i = 0; i < n - 1; i++) {
    for (int i2 = i + 1; i2 < n; i2++) {
      for (int j = 0; j < m - 1; j++) {
        for (int j2 = j + 1; j2 < m; j2++) {
          s += (x[i2] - x[i]) * (y[j2] - y[j]);
          s %= 1000000007;
        }
      }
    }
  }
  std::cout << s << std::endl;
  return 0;
}
int main() {
  input();
  run();
  return 0;
}
